Текст программы с комментариями

// 5_4.cpp: Задание 4

 

 

#include <iostream>

#include <ctime>

using namespace std;

 

 

/*

 * Запрашивает номер программы

 * Возвращает номер программы

 */

int response()

{

       int response;

 

       cout << "Введите номер программы: ";

       cin >> response;

       cout << endl;

 

       return response;

}

 

/*

 * Процедура генерации целлочисленного массива с заданным диапазоном

 */

void arrGen(int** arr, int n, int m)

{

       int a;

       int b;

 

       do {

                   cout << "Введите левую границу диапазона случайных чисел: ";

                   cin >> a;

                   cout << "Введите правую границу диапазона случайных чисел: ";

                   cin >> b;

 

                   if (a > b)

                   {

                               cout << endl << "Выввели некорректный диапазон, попробуйте ещё раз!" << endl << endl;

                   }

                   else

                   {

                               break;

                   }

 

       } while (true);

 

       for (int i = 0; i < n; i++)

       {

                   arr[i] = new int[m];

                   for (int j = 0; j < m; j++)

                   {

                               arr[i][j] = a + rand() % b;

                   }

       }

}

 

/*

 * Процедура вывода целочисленного массива

 */

void arrOut(int** arr, int n, int m)

{

       cout << endl << "Вывод массива: " << endl;

       for (int i = 0; i < n; i++)

       {

                   for (int j = 0; j < m; j++)

                   {

                               cout << arr[i][j] << "\t";

                   }

                   cout << endl;

       }

 

       cout << endl << endl;

}

 

 

/*

 * Процедура находит индекс столбца в котороv сумма его элементов минимальна

 * и выводит эти значения

 */

void minSumInColumn(int** arr, int n, int m)

{

       int oldMinSumInColumn = 0;

       int minSumInColumn;

       int index = 0;

 

       for (int j = 0; j < m; j++)

       {

                   minSumInColumn = 0;

                   for (int i = 0; i < n; i++)

                   {

                               minSumInColumn += arr[i][j];

                   }

 

                   if (index == 0)

                   {

                               oldMinSumInColumn = minSumInColumn;

                   }

 

                   if (minSumInColumn <= oldMinSumInColumn)

                   {

                               index = j;

                               oldMinSumInColumn = minSumInColumn;

                   }

       }

 

       cout << "Минимальная сумма в столбце = " << oldMinSumInColumn << endl;

       cout << "Индекс искомого столбца = " << index << endl << endl;

}

 

 

/*

 * Решение индивидуальной задачи

 * Ничего не возвращает

 */

void program_3()

{

       int n;

       int m;

 

       cout << "Введите кол-во строк в массиве: ";

       cin >> n;

       cout << endl;

       cout << "Введите кол-во столцов в массиве: ";

       cin >> m;

       cout << endl;

       int** arr = new int* [n];

 

       // Генерация массива

       arrGen(arr, n, m);

 

       // Вывод массива

       arrOut(arr, n, m);

 

       // Логика программы

       minSumInColumn(arr, n, m);

 

}

 

 

void main()

{

       setlocale(LC_CTYPE, "rus"); // вызов функции настройки локали

 

       int number;

       do

       {

                   number = response();

                   switch (number)

                   {

                   case 0:

                   {

                               break;

                   }

 

                   case 1:

                   {

                               break;

                   }

 

                   case 2:

                   {

                               break;

                   }

 

                   case 3:

                   {

                               program 3();

                               break;

                   }

 

                   default:

 

                               cout << "Такой программы не существует! Попробуйте ещё раз!" << endl << endl;

                               break;

                   }

       } while (number!= 0);

}

 

5. Контрольный пример:



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: