Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей - C (СИ) (155081)
Формулировка задачи:
очень нужно решение
Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей линейной последовательностью чисел, от левого верхнего угла вправо - вниз. Остаток матрицы заполнить нулями.
Решение задачи: «Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей»
textual
Листинг программы
#define m 9
int matr[m][m];
int main()
{
int n = 1;
int ii= 0;
for (int i=0; i<m; i++)
{
for (int j=0; j<m; j++)
{
if ((j>=ii) && (j<=(m-ii-1))) matr[i][j] = 0; else
{
matr[i][j] = n;
n++;
}
}
if (i<m/2) ii++; else ii--;
}
for (int i=0; i<m; i++)
{
for (int j=0; j<m; j++)
{
printf("%d\t",matr[i][j]);
}
printf("\r\n");
}
return 0;
}
Объяснение кода листинга программы
- Программа создает матрицу размером 9х9 и заполняет ее значениями по определенному правилу
- Переменная
nинициализируется значением 1, а переменнаяiiравна 0 - Два вложенных цикла заполняют матрицу. Первый цикл идет по строкам, а второй по столбцам
- Условие в вложенных циклах проверяет, лежит ли текущий столбец слева или справа от побочной диагонали
- Если условие выполняется, то значение в текущей ячейке матрицы устанавливается равным
n, а значениеnувеличивается на 1 - После завершения циклов, значение переменной
iiинкрементируется или декрементируется в зависимости от того, находится ли текущая строка до главной диагонали или после нее - Значения матрицы выводятся на экран с помощью функции printf
- Программа возвращает 0, что означает успешное выполнение