Написать программу на языке с++ - Компьютерные вопросы

Вопрос Написать программу на языке с++

Регистрация
8 Май 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
Дана прямоугольная матрица. Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов. Оговорюсь сразу, что использовать супер умные функции не нужно. Так как преподаватель попросит объяснить каждую букву)))

Прошу, прошу, умоляю, умоляю.
 
Регистрация
10 Апр 2013
Сообщения
69
Репутация
0
Спасибо
0
Монет
0
Вот пример программы на языке C++ для решения вашей задачи:

```cpp
#include <iostream>
#include <vector>

int main() {
int rows, cols;
std::cout <<Введите количество строк и столбцов: ";
std::cin >> rows >> cols;

std::vector<std::vector<int>> matrix(rows, std::vector<int>(cols));
std::cout <<Введите элементы матрицы:\n";
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cin >> matrix[j];
}
}

int max_sum = INT_MIN, min_sum = INT_MAX;
int max_row = -1, min_row = -1;

for (int i = 0; i < rows; ++i) {
int sum = 0;
for (int j = 0; j <; ++j) {
sum += matrix[j];
}
if (sum > max_sum) {
max_sum = sum;
max_row = i;
}
if (sum < min_sum) {
min_sum = sum;
min_row = i;
}
}

std::cout << "Строка с наибольшей суммой элементов: " <<_row + 1 << " (сумма: " << max_sum << ")\n";
std::cout <<Строка с наименьшей суммой элементов: " << min_row + 1 << (сумма: " << min_sum << ")\n";

return 0;
}
```

В этой программе мы сначала считываем размер матрицы, а затем ее элементы. Далее, идет двойной цикл, где мы вычисляем сумму элементов каждой строки и сравниваем с максимальной и минимальной суммами. Если текущая сумма больше максимальной или меньше минимальной, мы обновляем значения максимальной и минимальной сумм и сохраняем индекс строки. В конце выводим индексы строк и суммы элементов.
 
Регистрация
14 Июл 2013
Сообщения
89
Репутация
0
Спасибо
1
Монет
0
#include
using namespace std;

int sum(int* str, int n) //функция для вычисления суммы строки
{
int summ = 0; //начальное значение суммы
while (n--) summ += *str++; //суммирование n элементов строки
//тоже самое что и for(int i=0;i> m >> n; //ввод размеров

//создание матрицы в виде динамического двухмерного массива
int** matrix = new int* [m]; //первая размерность - указатель на строки
for (int i = 0; i < m; i++) matrix = new int[n]; //вторая - выделение памяти для каждой строки

//заполнение матрицы
for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) cin >> matrix[j];

//переменные для хранения индекса и суммы минимальной и максимальной строк
int sum_min, ind_min=0, sum_max, ind_max=0;

//начальные минимальные и максимальные значения устанавливаем относительно первой строки
sum_min = sum_max = sum(matrix[0], n);

//проходимся по строкам и уточняем максимальные и минимальные значения
for (int i = 1; i < m; i++)
{
int tmp = sum(matrix, n); //вычисление суммы текущей строки
if (tmp > sum_max) { sum_max = tmp; ind_max = i; } //уточнение максимальных значений
if (tmp < sum_min) { sum_min = tmp; ind_min = i; } //уточнение минимальных значений
}

//вывод результата
cout
 
Регистрация
27 Ноя 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
С динамической рандомной матрицей целочисленных элементов из диапазона [a;b]: #include
#include
#include
#include
#include
using namespace std;
int main()
{
int a, b, c, l, m, n, s = 0, mini, maxi;
vector Min, Max;
cout > a >> b >> n;
c = b - a + 1;
srand(time(NULL));
int **A = new int *[n];
for (l = 0; l < n; ++l)
{
A[l] = new int [n];
for (m = 0; m < n; ++m)
{
A[l][m] = rand() % c + a;
cout
 
Сверху Снизу