В двумерном массиве все элементы, которые стоят выше максимального элемента, заменить на минимальный - C (СИ)
Формулировка задачи:
В двумерном массиве все элементы, которые стоят выше максимального элемента, заменить на минимальный элемент.
#include <stdio.h>
#include <conio.h>
#include <clocale>
int main(void) {
//Объявление массива
setlocale(LC_ALL, "Rus");
int A[10][10];
int m, n; //Объявление переменных, где будем хранить ширину и высоту
int imin = 1;
int jmin = 1;
int imax = 1;
int jmax = 1;
int i, j;
printf("Введите размер массива: ");
scanf_s("%d%d", &m, &n); //Ввод двух значений
//Поэлементный ввод массива
for (int i = 0; i < n; i = i + 1)
{
for (int j = 0; j < m; j = j + 1)
{
printf("Введите %d массива: ", i + 1);
scanf_s("%d", &A[i][j]);
}
}
//Вывод массива в виде ровной таблицы
printf("Исходный массив:\n\n");
for (int i = 0; i < n; i = i + 1)
{
for (int j = 0; j < m; j = j + 1)
{
printf("%4d", A[i][j]); //Оставляем место под 4 знака на число
}
printf("\n"); //Выводим перенос строки для перехода к следующей строке массива
}
for (int i = 0; i < n; i = i + 1)
{
for (int j = 0; j < m; j = j + 1)
{
if (A[i][j] < A[imin][jmin])
{
imin = i;
jmin = j;
}
}
}
for (int i = 0; i < n; i = i + 1)
{
for (int j = 0; j < m; j = j + 1)
{
if (A[i][j] > A[imax][jmax])
{
imax = i, jmax = j;
}
}
}
for (int i = 0; i < n; i = i + 1)
{
for (int j = 0; j < m; j = j + 1)
{
if (A[i][j] > A[imax][jmax])
{
A[i][j] = A[imin][jmin];
}
}
}
printf("\n Полученный массив:\n\n");
for (int i = 0; i<n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%d ", A[i][j]);
}
_getch();
}
}Решение задачи: «В двумерном массиве все элементы, которые стоят выше максимального элемента, заменить на минимальный»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main(void)
{
//Объявление массива
setlocale(LC_ALL, "Rus");
int A[10][10];
int m, n; //Объявление переменных, где будем хранить ширину и высоту
int imin = 0;
int jmin = 0;
int imax = 0;
int jmax = 0;
int i, j;
printf("Введите размер массива: ");
scanf_s("%d%d", &n, &m); //Ввод двух значений
//Поэлементный ввод массива
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
printf("A[%d][%d]=", i, j);
scanf_s("%d", &A[i][j]);
if (A[i][j] < A[imin][jmin])
{
imin = i;
jmin = j;
}
if (A[i][j] >= A[imax][jmax])
{
imax = i;
jmax = j;
}
}
//Вывод массива в виде ровной таблицы
printf("Исходный массив:\n\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
printf("%4d", A[i][j]); //Оставляем место под 4 знака на число
printf("\n"); //Выводим перенос строки для перехода к следующей строке массива
}
for (i = 0; i < imax; i++)
for (j = 0; j < m; j++)
A[i][j] = A[imin][jmin];
printf("\n Полученный массив:\n\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
printf("%4d", A[i][j]);
printf("\n"); //Выводим перенос строки для перехода к следующей строке массива
}
_getch();
}
Объяснение кода листинга программы
- Объявление массива
- Ввод размера массива
- Поэлементный ввод массива
- Поиск минимального элемента и сохранение его индексов
- Поиск максимального элемента и сохранение его индексов
- Замена всех элементов, которые стоят выше максимального элемента, на минимальный
- Вывод исходного массива в виде ровной таблицы
- Замена элементов, начиная с элемента с максимальным индексом по диагонали, на минимальный
- Вывод полученного массива в виде ровной таблицы
- Получение ввода от пользователя с помощью _getch()