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