Определить количество строк матрицы, содержащих хотя бы один нулевой элемент - 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 будет содержаться количество строк матрицы, содержащих хотя бы один нулевой элемент.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д