Определить номер столбца матрицы, в котором находится больше всего отрицательных элементов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан двумерный массив размерности Н*М. Определить номер столбца, в котором находится больше всего отрицательных элементов.
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. void main (){
  4. int i,j,n,m,a[10][10],b[10],k,max,l;
  5. printf ("Razmernost:\n");
  6. scanf ("%d %d ",&n,&m);
  7. printf ("Elements massiva \n");
  8. for (i = 0; i <= n; i++);{
  9. for (j = 0; j <= m; j++);
  10. scanf ("%d ", &a[i][j]);}
  11. k=0;
  12. for (j=1; j<=m;j++){
  13. for (i=1; i<=n; i++){
  14. if (a[i][j]<0) {
  15. k=k+1;
  16. }
  17. }
  18. b[j]=k;
  19. k=0;
  20. }
  21. max=b[1];
  22. l=1;
  23. for (i=2; i<=m; i++){
  24. if (b[i]>max) {
  25. max = b[i];
  26. l=i;
  27. }
  28. }
  29. printf ("l \n");
  30. getch ();
  31. }

Решение задачи: «Определить номер столбца матрицы, в котором находится больше всего отрицательных элементов»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //#include <conio.h>
  4.  
  5. int main() {
  6.     int i, j, n, m, a[10][10], b[10], k, max;
  7.     printf("Razmernost: ");
  8.     scanf("%d %d ", &n, &m);
  9.     printf("\nElements massiva:\n");
  10.     for (i = 0; i < n; i++) {
  11.         for (j = 0; j < m; j++) {
  12.             //scanf("%d ", &a[i][j]);
  13.             a[i][j] = rand() % 15 - 10;
  14.             printf("%4d", a[i][j]);
  15.         }
  16.         printf("\n");
  17.     }
  18.     max = -1;
  19.     for (j = 0; j < m; j++) {
  20.         k = 0;
  21.         for (i = 0; i < n; i++) {
  22.             if (a[i][j] < 0) {
  23.                 k++;
  24.             }
  25.         }
  26.         if (k >= max) {
  27.             max = k;
  28.         }
  29.         b[j] = k;
  30.     }
  31.     printf("max negative elem = %d in cols: ", max);
  32.     for (j = 0; j < m; ++j)
  33.         if (b[j] == max)
  34.             printf(" %d", j);
  35.     // getch();
  36.     return 0;
  37. }

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

В этом коде определен размер матрицы (n на m), создана матрица a[10][10] для хранения случайных чисел, а затем введен ряд случайных чисел в эту матрицу. Затем код ищет столбец с наибольшим количеством отрицательных чисел, используя массив b[10] для подсчета количества отрицательных чисел в каждом столбце. Наконец, код выводит номер столбца с наибольшим количеством отрицательных чисел.

  1. Объявлены переменные i, j, n, m, a[10][10], b[10], k, max.
  2. С помощью функции printf и scanf вводится размер матрицы.
  3. С помощью двух вложенных циклов создается и выводится матрица a[10][10].
  4. Переменная max инициализируется как -1.
  5. Два вложенных цикла подсчитывают количество отрицательных чисел в каждом столбце и обновляют переменную max, если количество отрицательных чисел в текущем столбце больше, чем максимальное значение.
  6. Результаты подсчета количества отрицательных чисел в каждом столбце сохраняются в массиве b[10].
  7. С помощью функции printf выводится наибольшее количество отрицательных чисел и столбцы, в которых это количество достигается.
  8. Код завершается, и управление передается операционной системе.

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


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

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

13   голосов , оценка 4.308 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы