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