Массив: Найти количеств строк матрицы, содержащих хотя бы один ноль. - C (СИ)
Формулировка задачи:
В общем, взываю к помощи экспертов. Дана прямоугольная матрица, с заданным количеством столбцов и строк.
1. Найти количеств строк, содержащих хотя бы один ноль.
2. Найти номер столбца, в котором содержится самая длинная серия одинаковых элементов.
В интернете куча различных вариаций решения, но они все в C++, а нужно конкретно в Си.
Заранее благодарен любому, кто откликнется на зов о помощи.
Решение задачи: «Массив: Найти количеств строк матрицы, содержащих хотя бы один ноль.»
textual
Листинг программы
//Дана прямоугольная матрица, с заданным количеством столбцов и строк. const int w=5,h=5; int a[w][h]={0}; int i,j,c=0,r,k,l; for(i=0;i<w;i++){ r=0; for(j=0;j<h;j++){ a[i][j]=rand()%10; printf("%5d",a[i][j]); //Найти количеств строк, содержащих хотя бы один ноль. r+=a[i][j]==0; };printf("\n"); c+=r!=0; };printf("\n"); printf("количеств строк, содержащих хотя бы один ноль.%d",c); //Найти номер столбца, в котором содержится самая длинная серия одинаковых элементов. c=0; r=0; l=0; for(i=0;i<h;i++){ for(j=0;j<w;j++){ r=0; for(k=j+1;j<w && a[j][i]==a[k][i];k++,r++); if(r>c) {c=r;l=i;}; } } printf("номер столбца %d",l); getchar();
Объяснение кода листинга программы
- Объявлены переменные:
- w и h - количество строк и столбцов матрицы соответственно;
- a - массив, представляющий собой матрицу;
- i, j, c, r, k, l - вспомогательные переменные для работы с матрицей и поиска нулей;
- Вывод начала матрицы.
- В цикле перебираются строки матрицы:
- В каждой строке в цикле перебираются столбцы;
- Элементы матрицы заполняются случайными числами от 0 до 9;
- Выводится текущий элемент матрицы;
- Счетчик r подсчитывает количество нулей в текущей строке;
- После завершения внутренней циклы, счетчик r выводит количество строк с нулями и увеличивает счетчик c, если в строке есть ноль.
- После завершения внешнего цикла, выводится общее количество строк с нулями.
- В цикле перебираются столбцы матрицы:
- В каждой строке в цикле перебираются столбцы;
- Счетчик r подсчитывает количество одинаковых элементов в текущем столбце;
- Если текущий столбец содержит более длинную серию одинаковых элементов, чем предыдущий, обновляются счетчики r, c и l;
- После завершения внутренней циклы, выводится номер столбца с самой длинной серией одинаковых элементов.
- Программа ожидает ввода пользователя для подтверждения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д