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

Тема в разделе "C/C++/C#", создана пользователем D1em, 9 дек 2010.

  1. D1em

    D1em Гость

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

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

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код (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;
    }
     

    Вложения:

    • maxstroka.jpg
      maxstroka.jpg
      Размер файла:
      50,8 КБ
      Просмотров:
      18
  3. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    2 D1em : Тема более не актуальна ???
     
Загрузка...
Похожие Темы - Задача Определение строки
  1. Янчик
    Ответов:
    0
    Просмотров:
    470
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    777
  3. elzim
    Ответов:
    0
    Просмотров:
    928
  4. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.113
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.101

Поделиться этой страницей