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