Найти в матрице первую строку, все элементы которой равны нулю - C (СИ)
Формулировка задачи:
Найти в матрице первую строку, все элементы которой равны нулю. Все элементы столбца с таким же номером уменьшить вдвое
Решение задачи: «Найти в матрице первую строку, все элементы которой равны нулю»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int mas[][4]={ {4,0,28,2},
{6,0,-6,0},
{0,0,0,0},
{8,9,4,1}};
int i,j,k,n=0;
for(i=0;i<4;i++){
k=0;
for(j=0;j<4;j++){
if(mas[i][j]==0) k++;
}
if(k==4) n=i;
}
for(j=0;j<4;j++){
mas[j][n]/=2;
}
for(i=0;i<4;i++){
for(j=0;j<4;j++)
printf("%4d",mas[i][j]);
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлена матрица
masразмером 4x4, заполненная значениями. - В цикле перебираются строки матрицы.
- В каждой строке в цикле перебираются элементы.
- Если элемент равен нулю, то увеличивается счетчик
k. - Если все элементы строки равны нулю, то запоминается номер строки
n. - В каждой строке, начиная с 0-й, вычисляется средний элемент и записывается в соответствующий элемент матрицы.
- Выводится на экран содержимое матрицы.
- Возвращается 0, завершая работу программы.