Найти максимальный элемент каждой строки матрицы - 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;
}

Объяснение кода листинга программы

В этом коде реализована функция для поиска максимального элемента каждой строки в матрице, а также основная функция, которая создает случайную матрицу заданного размера, вызывает функцию поиска максимального элемента и выводит исходную и измененную матрицы.

  1. #include — подключает стандартную библиотеку ввода-вывода
  2. int max_el(int a[][100], int n, int m) — объявление функции для поиска максимального элемента строки в матрице
  3. int main(void) — объявление точки входа в программу
  4. setlocale(0,``); — установка стандартной локали
  5. int n, m, i, j; — объявление переменных для размера матрицы
  6. int a[100][100]; — объявление двумерного массива для хранения матрицы
  7. printf(Введите размерность n*m(max 100*100):); — запрос на ввод размера матрицы
  8. scanf(%d %d, &n, &m); — считывание введенных пользователем чисел
  9. srand(time(NULL)); — инициализация генератора случайных чисел
  10. for (i=0; i<n; i++) — обход строк матрицы
  11. for (j=0; j<m; j++) — обход столбцов матрицы
  12. a[i][j] = rand()%10; — заполнение матрицы случайными числами
  13. printf(%d, a[i][j]); — вывод числа на экран
  14. printf(\n); — переход на новую строку
  15. max_el(a, n, m); — вызов функции для поиска максимального элемента
  16. putchar('\n'); — переход на новую строку
  17. for (i=0; i<n; i++) — обход строк матрицы
  18. for (j=0; j<m; j++) — обход столбцов матрицы
  19. printf(%d, a[i][j]); — вывод числа на экран
  20. printf(\n); — переход на новую строку
  21. return 0; — завершение программы

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы