Найти сумму и количество элементов с заданным условием (хранить эти значения в массивах): максимальные элементы каждой строки; C++
При выводе максимального элемента выводит почти все числа массива. Нужна помощь
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int n;
cout<<"введите размер массива nxn: ";
cin>>n;
int arr[n][n];
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
arr[i][j]=rand() % 25;
}
}
cout << "Array: " << endl;
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
for(int j=0;j<n;j++){
for ( i = 0; i < n; ++i) {
int max=arr[0][0];
if (arr[i][j] > max) {
max = arr[i][j];
cout<<max;
}
}
}
return 0;
}```
Ответы (1 шт):
Автор решения: Ivan
→ Ссылка
Ошибка была в цикле с нахождением max, изменил цикл так, что теперь изначально максимальным элементом является первый элемент строки, который сравнивается только с другими элементами строки. Также добавил сумму максимальных элементов.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int n;
cout<<"введите размер массива nxn: ";
cin>>n;
int arr[n][n];
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
arr[i][j]=rand() % 20;
}
}
//вывод чисел
cout << "Array: " << endl;
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
int sum=0;
for (int i = 0; i < n; i++)
{
int max = arr[i] [0];
for (int j = 0; j < n; j++)
{
if (arr[i] [j] > max)
max = arr[i] [j];
}
cout<<max<<endl;
sum=sum+max;
}
cout<<sum;
return 0;
}```