
Язык Си Матрица M=N. Найти максимальный элемент и его значение присвоить элементам главной
диагонали;

Ответы на вопрос

Ответ:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand(time(0));
int n;
int maxE;
cout << "ENTER THE SIZE: ";
cin >> n;
int **arr = new int *[n];
for(int i = 0; i < n; i++) arr[i] = new int[n];
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++) cout << (arr[i][j] = rand() % 100) << ' ';
cout << endl;
}
maxE = arr[0][0];
for(int i = 0; i < n; i++)
for(int j = 0; j < n ; j++)
if(arr[i][j] > maxE) maxE = arr[i][j];
cout << "\nMAX EL: " << maxE << endl << endl;
for(int i = 0; i < n; i++) arr[i][i] = maxE;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++) cout << arr[i][j] << ' ';
cout << endl;
}
for(int i = 0; i < n; i++) delete [] arr[i];
delete [] arr;
return 0;
}
Объяснение:
n - размер матрицы, maxE - макс. элемент



Для решения данной задачи можно использовать следующий алгоритм:
1. Создаем и инициализируем матрицу размером m × n.
2. Находим максимальный элемент в матрице и сохраняем его значение и его индексы i и j.
3. Проходимся по всем элементам главной диагонали (элементы с индексами i = j) и присваиваем им значение максимального элемента.
Пример реализации на языке Си:
```c
#include
#define MAX_SIZE 100
int main() { int matrix[MAX_SIZE][MAX_SIZE]; int m, n;
// Вводим размеры матрицы printf("Введите количество строк матрицы: "); scanf("%d", &m); printf("Введите количество столбцов матрицы: "); scanf("%d", &n);
// Вводим элементы матрицы printf("Введите элементы матрицы:\n"); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); } }
// Находим максимальный элемент int maxElement = matrix[0][0]; int maxI = 0; int maxJ = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (matrix[i][j] > maxElement) { maxElement = matrix[i][j]; maxI = i; maxJ = j; } } }
// Присваиваем максимальное значение элементам главной диагонали for (int i = 0; i < m; i++) { matrix[i][i] = maxElement; }
// Выводим результат printf("Матрица с присвоенными значениями:\n"); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { printf("%d ", matrix[i][j]); } printf("\n"); }
return 0; } ```
Программа сначала запрашивает у пользователя количество строк и столбцов матрицы. Затем пользователь вводит элементы матрицы. Далее программа находит максимальный элемент и его индексы. После этого она проходится по главной диагонали и присваивает элементам это значение. Наконец, программа выводит исходную матрицу с присвоенными значениями на экран.
Например, для следующей матрицы:
``` 3 5 2 8 1 4 6 9 7 ```
Программа найдет максимальный элемент 9 и присвоит его главной диагонали, получая следующий результат:
``` 9 5 2 8 9 4 6 9 9 ```
Надеюсь, это поможет!


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili