Найти максимальный элемент каждой строки матрицы - C (СИ)
Формулировка задачи:
Здравствуйте! Помогите, пожалуйста, мне с программой. Я си изучаю 2 день и у меня возникла проблема с функцией, я никак не могу понять, как её правильно вызвать. Задание звучит так: Найти максимальный элемент каждой строки матрицы и заменить его числом 1.
#include <stdio.h>
int max_el(int a, int n, int m)
{
int i, j, max = 0;
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
{
if (a[i][j] > a[i][max]) max = j;
}
a[i][max] = 1;
}
}
int main()
{
setlocale(0,"");
int a[100][100], k, n, m, i, j;
printf("Ââåäèòå Г°Г*çìåðГ*îñòü n*m: ");
scanf("%d %d", &n, &m);
srand(time(NULL));
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
{
a[i][j] = rand()%10;
printf("%d ", a[i][j]);
}
printf("\n");
}
max_el(a, n, m);
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
{
printf("%d", a[i][j]);
}
printf("\n");
}
_getch();
}Решение задачи: «Найти максимальный элемент каждой строки матрицы»
textual
Листинг программы
#include <stdio.h>
int max_el(int a[][100], int n, int m)
{
int i, j, max;
for (i=0; i<n; i++)
{
max = 0;
for (j=1; j<m; j++)
{
if (a[i][j] > a[i][max])
max = j;
}
a[i][max] = 1;
}
}
int main(void)
{
setlocale(0,"");
int n, m, i, j;
int a[100][100];
printf("Введите размерность n*m(max 100*100): ");
scanf("%d %d", &n, &m);
srand(time(NULL));
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
a[i][j] = rand()%10;
printf("%d ", a[i][j]);
}
printf("\n");
}
max_el(a, n, m);
putchar('\n');
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
//_getch();
return 0;
}
Объяснение кода листинга программы
В этом коде реализована функция для поиска максимального элемента каждой строки в матрице, а также основная функция, которая создает случайную матрицу заданного размера, вызывает функцию поиска максимального элемента и выводит исходную и измененную матрицы.
- #include
— подключает стандартную библиотеку ввода-вывода - int max_el(int a[][100], int n, int m) — объявление функции для поиска максимального элемента строки в матрице
- int main(void) — объявление точки входа в программу
- setlocale(0,``); — установка стандартной локали
- int n, m, i, j; — объявление переменных для размера матрицы
- int a[100][100]; — объявление двумерного массива для хранения матрицы
- printf(
Введите размерность n*m(max 100*100):); — запрос на ввод размера матрицы - scanf(
%d %d, &n, &m); — считывание введенных пользователем чисел - srand(time(NULL)); — инициализация генератора случайных чисел
- for (i=0; i<n; i++) — обход строк матрицы
- for (j=0; j<m; j++) — обход столбцов матрицы
- a[i][j] = rand()%10; — заполнение матрицы случайными числами
- printf(
%d, a[i][j]); — вывод числа на экран - printf(
\n); — переход на новую строку - max_el(a, n, m); — вызов функции для поиска максимального элемента
- putchar('\n'); — переход на новую строку
- for (i=0; i<n; i++) — обход строк матрицы
- for (j=0; j<m; j++) — обход столбцов матрицы
- printf(
%d, a[i][j]); — вывод числа на экран - printf(
\n); — переход на новую строку - return 0; — завершение программы