// 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. Контрольный пример: