Массив: Найти количеств строк матрицы, содержащих хотя бы один ноль. - 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();

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

  1. Объявлены переменные:
    • w и h - количество строк и столбцов матрицы соответственно;
    • a - массив, представляющий собой матрицу;
    • i, j, c, r, k, l - вспомогательные переменные для работы с матрицей и поиска нулей;
    • Вывод начала матрицы.
  2. В цикле перебираются строки матрицы:
    • В каждой строке в цикле перебираются столбцы;
    • Элементы матрицы заполняются случайными числами от 0 до 9;
    • Выводится текущий элемент матрицы;
    • Счетчик r подсчитывает количество нулей в текущей строке;
    • После завершения внутренней циклы, счетчик r выводит количество строк с нулями и увеличивает счетчик c, если в строке есть ноль.
  3. После завершения внешнего цикла, выводится общее количество строк с нулями.
  4. В цикле перебираются столбцы матрицы:
    • В каждой строке в цикле перебираются столбцы;
    • Счетчик r подсчитывает количество одинаковых элементов в текущем столбце;
    • Если текущий столбец содержит более длинную серию одинаковых элементов, чем предыдущий, обновляются счетчики r, c и l;
    • После завершения внутренней циклы, выводится номер столбца с самой длинной серией одинаковых элементов.
  5. Программа ожидает ввода пользователя для подтверждения работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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