В чем ошибка? Матрица - 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();
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две константы n и m, которые задают размерность матрицы.
  2. Объявлена матрица a динамически с использованием оператора malloc.
  3. В цикле for сначала происходит заполнение матрицы значениями с помощью функции scanf.
  4. Затем в цикле for происходит поиск количества ненулевых элементов в каждой строке матрицы.
  5. Значение переменной s увеличивается только если текущая строка полностью состоит из нулей.
  6. В конце программы выводится количество ненулевых элементов в матрице.
  7. Используется функция getch() для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы