Определить количество строк матрицы, содержащих хотя бы один нулевой элемент - C (СИ) (71160)
Формулировка задачи:
Дана целочисленная прямоугольная матрица. Определить:
1) количество строк, содержащих хотя бы один нулевой элемент;
2) номер столбца, в котором находится самая длинная серия
одинаковых элементов.
#include "stdafx.h" #include <locale> #include <stdio.h> #include <math.h> #include <stdlib.h> const int M = 3; const int N = 3; int kolichestvo(int mas[M],int M) { int i; i = 0; while (i < M) { if (mas[i] == 0) i = i + 1; return 1; } return 0; } int nomerst(int mas[M][N], int M, int N) { int max = 0; int num = 0; int x = 0; for (int j = 0; j < N; j++) { int t = 0; for (int i = 0; i < M; i++) for (int k = i + 1; k < M; k++) if (mas[i][j] == mas[k][j]) t = t + 1; if (t > max) { max = t; num = j+1; } } return num; } int main() { setlocale(LC_ALL, "Russian"); int mas[M][N],i,j,n; int kol = 0; for (i = 0; i < M; i++) { for (j = 0; j < N; j++) { printf("mas[%d][%d]=", i, j); scanf_s("%d",&mas[i][j]); } } for (i= 0;i<= N; i++) { n = kolichestvo(mas[i], i); if (n == 1) kol = kol + 1; } kolichestvo(mas[i], i); nomerst(mas, M, N); printf_s("Количество строк содержащих нуль=%d\n",kol); printf_s("Номер столбца который содержит максимальное кол-во повторений эл-тов=%d",nomerst(mas, M, N)); for (i = 0; i < M; i++) { printf("\n"); for (j = 0; j < N; j++) { printf_s("%d", mas[i][j]); printf(" "); } } getchar(); getchar(); return 0; }
у меня не получается найти количество строк содержащих хотя бы один нулевой элемент
Решение задачи: «Определить количество строк матрицы, содержащих хотя бы один нулевой элемент»
textual
Листинг программы
int flag = 0, kol = 0; for(i = 0; i < M; i++){ for(j = 0; j < N; j++){ if(mas[i][j] == 0) flag = 1; } if(flag) kol++; flag = 0; }
Объяснение кода листинга программы
- Объявлены две переменные: флаг и kol. Значение флага установлено в 0, а kol - в 0.
- Начинается внешний цикл, который проходит по всем строкам матрицы (от i = 0 до i < M).
- В каждой строке происходит внутренний цикл, который проходит по всем столбцам (от j = 0 до j < N).
- Если элемент матрицы равен 0, то значение флага изменяется на 1.
- После завершения внутреннего цикла, проверяется значение флага. Если оно равно 1, то значение переменной kol увеличивается на 1.
- Значение флага устанавливается обратно в 0, чтобы начать следующий цикл с чистым значением флага.
- После завершения внешнего цикла, в переменной kol будет содержаться количество строк матрицы, содержащих хотя бы один нулевой элемент.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д