Code:
#include <iostream> #include <math.h> using namespace std; int main() { setlocale(0, "Russian"); cout<<"Введите размер массива: "<<endl; int n, a[20][20]; cin >> n; if (n < 2) { cout << "Ошибка: размер массива должен превышать 1"<<endl; } else { //поиск k количества используемых простых чисел int k, c, p = 0, l; l = n; c = l; while (l >= 1) { k = c + p; c = k; p = l - 2; n = l - 2; } //Заполнение массива простых чисел int y[111]; int z = 2; for (int i = 0; i < k; i++) { y[i] = z; z++; } int t = y[k - 1]; //заполнение массива наибольшим простым числом t for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = t; } } //заполнение правого верхнего треугольника int q=0; for(int i = 0; i < (n - 1) / 2 + 1; i++) { for (int j = n - 1; j > n - 2 - i; j--, q++) { a[i][j] = y[q]; } } //заполнение правого нижнего треугольника for (int i = (n - 1) / 2 + 1; i < n; i++) { for (int j = n - 2 - i; j < n ; j++, q++) { a[i][j] = y[q]; } } //вывод массива for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j]<<" "; } cout << endl; } }
Сорри за частичную нечитаемос ть и огромное количество переменных , я еще школьник))
Что не так с кодом? Должен заполнять двумерный массив так, чтобы правая "четверть" заполнялас ь числами по порядку, начиная с двойки, а все остальное заполнялос ь наибольшим из чисел. (в оригинале заполнять надо не просто числами, а простыми, но это не главное)
Буду благодарен за помощь
-------------------
Sorry for the partial unreadability and a huge number of variables, I'm still a schoolboy))
What is wrong with the code? Must fill in a two-dimensional array so that the right “quarter” is filled with numbers in order, starting from two, and everything else is filled with the largest of the numbers. (in the original it is necessary to fill in not just numbers, but simple, but this is not the main thing)
I will be grateful for the help
Comment