Создайте двумерный массив целого типа заданного размера, M строк и N столбцов. Задайте значения элементов с помощью генератора случайных чисел в пределах от 2 до 5. Найдите сумму всех элементов в каждой строке.
Ответы на вопрос
Ответил Аноним
0
#include <locale>
#include <iostream>
#include <ctime> // для time в srand
#include <stdlib.h>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
srand(time(0));
int n,m;
cout << "Строк: "; cin >> n; cout << endl;
cout << "Столбцов: "; cin >> m; cout << endl;
// создание и инициализация динамического массива
int **a=new int* [n];
for (int i=0; i<n; i++) {
a[i]=new int[m];
for (int j=0; j<m; j++)
a[i][j]=rand()%4+2;
}
// вывод массива по строкам
for (int i=0; i<n; i++){
for (int j=0; j<m; j++)
cout << a[i][j] << " ";
cout << endl;
}
// суммы по строкам с выводом
cout << endl << "Суммы по строкам" << endl;
for (int i=0; i<n; i++) {
int s=0;
for (int j=0; j<m; j++)
s+=a[i][j];
cout << s << " ";
}
// очистка мусора после работы (обязательно!!!)
for (int i=0; i<n; i++)
delete []a[i];
system("pause");
return 0;
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Эх... сумасшествие это - делать на С++ такие задачи.
В качестве обидного бонуса - как выглядит полный аналог программы, но на современном паскале. Можете сравнить размер программы. Смешно, не правда ли?
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Строк:');
var m:=ReadInteger('Столбцов:');
var a:=MatrRandom(n,m,2,5); a.Println(2);
Writeln(NewLine,'Суммы по строкам');
a.Rows.Select(x->x.Sum).Println;
end.
#include <iostream>
#include <ctime> // для time в srand
#include <stdlib.h>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
srand(time(0));
int n,m;
cout << "Строк: "; cin >> n; cout << endl;
cout << "Столбцов: "; cin >> m; cout << endl;
// создание и инициализация динамического массива
int **a=new int* [n];
for (int i=0; i<n; i++) {
a[i]=new int[m];
for (int j=0; j<m; j++)
a[i][j]=rand()%4+2;
}
// вывод массива по строкам
for (int i=0; i<n; i++){
for (int j=0; j<m; j++)
cout << a[i][j] << " ";
cout << endl;
}
// суммы по строкам с выводом
cout << endl << "Суммы по строкам" << endl;
for (int i=0; i<n; i++) {
int s=0;
for (int j=0; j<m; j++)
s+=a[i][j];
cout << s << " ";
}
// очистка мусора после работы (обязательно!!!)
for (int i=0; i<n; i++)
delete []a[i];
system("pause");
return 0;
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Эх... сумасшествие это - делать на С++ такие задачи.
В качестве обидного бонуса - как выглядит полный аналог программы, но на современном паскале. Можете сравнить размер программы. Смешно, не правда ли?
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Строк:');
var m:=ReadInteger('Столбцов:');
var a:=MatrRandom(n,m,2,5); a.Println(2);
Writeln(NewLine,'Суммы по строкам');
a.Rows.Select(x->x.Sum).Println;
end.
Новые вопросы