Задача: Определение строки в дв. массиве, сумма эл. которой максимальн

  • Автор темы D1em
  • Дата начала
D

D1em

Гость
#1
ребят, я только начал изучать С, помогите с практической кому не трудно
вот задание
__________________________________________________________________

Написать программу, которая определяет номер строки квадратной матрицы,
сумма элементов которых максимальна
 

DarkKnight

Well-Known Member
01.08.2010
653
0
#2
Написать программу, которая определяет номер строки квадратной матрицы,
сумма элементов которых максимальна
C++:
/*
Написать программу, которая определяет номер строки квадратной матрицы,
сумма элементов которых максимальна
*/
/*
codeby.net
Autor: DarkKnight125 (Denis Goncharov)
*/
#include <iostream>
#include <iomanip>
#include <time.h>

using namespace std;

void main(void)
{
setlocale(LC_ALL,".1251"); //Установим локаль в код. страницу 1251
int Arr[500][500]; //Наша матрица 500x500 элементов макс.
int Size; //Это будет нашей размерностью кв. матрицы
srand(time(NULL)); //Инициализируем генератор случ. величины

cout<< "Введите размерность кв. матрицы : ";
cin >> Size; //Введем размерность с клавиатуры
//Генерация значений матрицы и вывод их на экран
for (int i = 0; i< Size; i++) //Обойдем все строки
{
for (int j = 0; j< Size; j++) //Обойдем все столбны
{
Arr[i][j] = rand()%100 * (rand()%2?-1:1); //Генерируем значение от -99 до 99
cout << setw(4) << Arr[i][j]; //Выведим элемент на экран
}
cout << endl; //В конце строки переведем корретку
}

int SumMax = numeric_limits<int>::min(); //Сумма максимальная, Для начала сделаем ее очень маленькой
int Index = -1; //Индекс нужной строки
for (int i =0; i< Size; i++) //Обойдем опять же весь массив
{
int TempSum = 0; //Текущая сумма элементов (текущей строки)
for (int j=0; j< Size; j++) //Обойдем столбцы
TempSum += Arr[i][j]; //И просуммируем элементы
if (TempSum > SumMax) //Если на выходе TempSum > SumMax 
{
SumMax = TempSum; //То записываем в SumMax новое значение
Index = i; //И запоминаем индекс строки (кстати в C/С++ идексы массива начинают нумероваться с нуля, так что в конце к этому индексу прибавим единицу)
}
}
//Выведим результат на экран
cout << endl;
cout << "Строка с макс. суммой элементов : " << endl;
for (int i = 0; i<Size; i++)
cout<< "\t" << Arr[Index][i];
cout << endl << "Индекс данной строки Index = " << Index+1 << endl;
cout << "Сумма элементов данной строки Sum = " << SumMax << endl;
}
 

Вложения