В чем ошибка? Матрица - C (СИ)
Формулировка задачи:
Определить количество столбцов, не содержащих ни одного нулевого элемента.
#include<stdio.h> #include<stdlib.h> int main() { const int n=3,m=3; int a[n][m],i,j,s=0; for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("a[%d][%d]: ",i,j); scanf("%d",&a[i][j]); } } for(j=0;j<m;j++) { for(i=0;i<n;i++) { if (a[i][j]==0) { s++; break; } } } printf("кол-во - %d\n",s); getch(); }
Решение задачи: «В чем ошибка? Матрица»
textual
Листинг программы
#include<stdio.h> #include<stdlib.h> int main() { const int n=3,m=3; int a[n][m],i,j,s=0; for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("a[%d][%d]: ",i,j); scanf("%d",&a[i][j]); } } for(s=j=0;j<m;j++) { for(i=0;i<n;i++) { if (!a[i][j]) { break; } if(i==n-1) { s++; } } } printf("кол-во - %d\n",s); getch(); }
Объяснение кода листинга программы
В этом коде:
- Объявлены две константы
n
иm
, которые задают размерность матрицы. - Объявлена матрица
a
динамически с использованием оператораmalloc
. - В цикле
for
сначала происходит заполнение матрицы значениями с помощью функцииscanf
. - Затем в цикле
for
происходит поиск количества ненулевых элементов в каждой строке матрицы. - Значение переменной
s
увеличивается только если текущая строка полностью состоит из нулей. - В конце программы выводится количество ненулевых элементов в матрице.
- Используется функция
getch()
для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.