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