Поиск максимальных элементов в строках матрицы - C (СИ)
Формулировка задачи:
Дана прямоугольная матрица. Сформировать вектор, который состоит из максимальных элементов каждой строки матрицы. Поиск максимальных элементов в строках выполнить в виде подпрограммы.
Вот моя программа, но она ищет и выводит только один максимальный элемент всей матрицы, а не отдельных строк:
Помогите переделать программу.
#include <stdio.h>
#include <conio.h>
int i, j, maxa;
a[3][4]={{2, 6, 3, 4},
{4, 2, 5, 9},
{1, 8, 4, 3}};
void maximum (int c[3][4], int *maxc)
{
*maxc=c[0][0];
for (i=0;i<3;i++)
{
for (j=0;j<4;j++)
{
if (c[i][j]>*maxc)
{
*maxc=c[i][j];
}
}
}
}
main()
{
clrscr();
maximum(a, &maxa);
printf("\nMaxymal'nyj element masyvy:\n");
printf("%d ", maxa);
}Решение задачи: «Поиск максимальных элементов в строках матрицы»
textual
Листинг программы
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
const int n=3, m=3;
int main()
{
float A[n][m];
int i,j;
cout<<"Vvedite masiv: "<<n<<'x'<<m<<"\n";
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>A[i][j];
int max=0;
for ( i=0; i<n; i++) {
max=0;
for (int j=0; j<m; j++)
if (A[i][j]>max) max=A[i][j];
cout << "Max element in " << i+1 << " row: " << max;
cout << endl;
}
system("pause");
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с потоками ввода-вывода и для работы с консолью в Windows.
- Задаются константы для размера матрицы (n=3, m=3).
- Создается массив A типа float размером n на m.
- Выводится приглашение для ввода матрицы.
- Происходит заполнение массива A с помощью цикла двойной вложенности.
- Создается переменная max типа int, которая будет хранить максимальное значение элемента.
- Происходит поиск максимального элемента в каждой строке матрицы с помощью двух вложенных циклов.
- Выводится название и значение найденного максимального элемента в каждой строке.
- Программа ожидает нажатия клавиши для продолжения работы.
- Завершается выполнение программы.