Найти максимальный и минимальный элемент в каждом столбце матрицы и заменить их нулями - C (СИ)
Формулировка задачи:
Нужно найти макс и мин элемент в каждом столбце в двумерном массиве и заменить их нулями.
Программа не правильно работает для отриц. значений(для полож. все верно), подскажите где допущена ошибка.
Листинг программы
- #include "stdio.h"
- #include "conio.h"
- #include "locale.h"
- int main()
- {
- setlocale(LC_ALL,"rus");
- int a[100][100],N,maxi,maxj,max,min,mini,minj;
- printf("Введите кол-во строк (кол-во столбцов) >");
- scanf("%d,",&N);
- printf("Введите элементы массива >");
- for (int i=0;i<N;i++)
- {
- for (int j=0;j<N;j++)
- scanf("%d",&a[i][j]);
- }
- for (int j=0;j<N;j++)
- {
- min =a[0][j];
- mini=0;
- minj=j;
- for (int i=0;i<N;i++)
- {
- if (a[i][j]<min)
- {
- min=a[i][j];
- mini=i;
- minj=j;
- }
- }
- a[mini][minj]=0;
- }
- for (int j=0;j<N;j++)
- {
- max =a[0][j];
- maxi=0;
- maxj=j;
- for (int i=0;i<N;i++)
- {
- if (a[i][j]>max)
- {
- max=a[i][j];
- maxi=i;
- maxj=j;
- }
- }
- a[maxi][maxj]=0;
- }
- printf("\n");
- for (int i=0;i<N;i++)
- {
- for(int j=0;j<N;j++)
- printf("%d ",a[i][j]);
- printf("\n");
- }
- getch();
- }
Решение задачи: «Найти максимальный и минимальный элемент в каждом столбце матрицы и заменить их нулями»
textual
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <limits.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <time.h>
- int main(void)
- {
- srand(time(NULL));
- setlocale(LC_ALL,"Russian");
- int Arr[10][10];
- int min, max, imin, imax,n,m;
- printf("Введите кол-во строк в матрцие : ");
- scanf("%d", &n);
- printf("Введите кол-во столбцов в матрцие : ");
- scanf("%d", &m);
- system("cls");
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- Arr[i][j] =-5 + rand() % 10;
- printf("%3d", Arr[i][j]);
- }
- printf("\n");
- }
- for (int j = 0; j < m; j++)
- {
- min = INT_MAX; max = INT_MIN;
- for (int i = 0; i < n; i++)
- {
- if (Arr[i][j] > max)
- {
- max = Arr[i][j];
- imax = i;
- }
- if (Arr[i][j] < min)
- {
- min = Arr[i][j];
- imin = i;
- }
- }
- Arr[imin][j] = NULL;
- Arr[imax][j] = NULL;
- }
- printf("\n\n");
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- printf("%3d", Arr[i][j]);
- printf("\n");
- }
- getch();
- return 0;
- }
Объяснение кода листинга программы
Вот список действий, которые выполняются в коде:
- Задаются вопросы пользователю для ввода количества строк и столбцов матрицы.
- Создается матрица случайных целых чисел.
- Находится минимальный и максимальный элемент в каждом столбце матрицы.
- Идентификаторы минимального и максимального элемента заменяются нулями.
- Выводится матрица с обновленными значениями.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д