Определить номер столбца матрицы, в котором находится больше всего отрицательных элементов - C (СИ)
Формулировка задачи:
Дан двумерный массив размерности Н*М. Определить номер столбца, в котором находится больше всего отрицательных элементов.
#include <stdio.h> #include <conio.h> void main (){ int i,j,n,m,a[10][10],b[10],k,max,l; printf ("Razmernost:\n"); scanf ("%d %d ",&n,&m); printf ("Elements massiva \n"); for (i = 0; i <= n; i++);{ for (j = 0; j <= m; j++); scanf ("%d ", &a[i][j]);} k=0; for (j=1; j<=m;j++){ for (i=1; i<=n; i++){ if (a[i][j]<0) { k=k+1; } } b[j]=k; k=0; } max=b[1]; l=1; for (i=2; i<=m; i++){ if (b[i]>max) { max = b[i]; l=i; } } printf ("l \n"); getch (); }
Решение задачи: «Определить номер столбца матрицы, в котором находится больше всего отрицательных элементов»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> //#include <conio.h> int main() { int i, j, n, m, a[10][10], b[10], k, max; printf("Razmernost: "); scanf("%d %d ", &n, &m); printf("\nElements massiva:\n"); for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { //scanf("%d ", &a[i][j]); a[i][j] = rand() % 15 - 10; printf("%4d", a[i][j]); } printf("\n"); } max = -1; for (j = 0; j < m; j++) { k = 0; for (i = 0; i < n; i++) { if (a[i][j] < 0) { k++; } } if (k >= max) { max = k; } b[j] = k; } printf("max negative elem = %d in cols: ", max); for (j = 0; j < m; ++j) if (b[j] == max) printf(" %d", j); // getch(); return 0; }
Объяснение кода листинга программы
В этом коде определен размер матрицы (n на m), создана матрица a[10][10] для хранения случайных чисел, а затем введен ряд случайных чисел в эту матрицу. Затем код ищет столбец с наибольшим количеством отрицательных чисел, используя массив b[10] для подсчета количества отрицательных чисел в каждом столбце. Наконец, код выводит номер столбца с наибольшим количеством отрицательных чисел.
- Объявлены переменные i, j, n, m, a[10][10], b[10], k, max.
- С помощью функции printf и scanf вводится размер матрицы.
- С помощью двух вложенных циклов создается и выводится матрица a[10][10].
- Переменная max инициализируется как -1.
- Два вложенных цикла подсчитывают количество отрицательных чисел в каждом столбце и обновляют переменную max, если количество отрицательных чисел в текущем столбце больше, чем максимальное значение.
- Результаты подсчета количества отрицательных чисел в каждом столбце сохраняются в массиве b[10].
- С помощью функции printf выводится наибольшее количество отрицательных чисел и столбцы, в которых это количество достигается.
- Код завершается, и управление передается операционной системе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д