
Хованский
6 год назад
Создайте двумерный массив целого типа заданного размера, M строк и N столбцов. Задайте значения элементов с помощью генератора случайных чисел в пределах от 2 до 5. Найдите сумму всех элементов в каждой строке.
ОТВЕТЫ

Afrikanovich
Jul 8, 2019
#include lt;localegt;
#include lt;iostreamgt;
#include lt;ctimegt; // для time в srand
#include lt;stdlib.hgt;
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
srand(time(0));
int n,m;
cout lt;lt; "Строк: "; cin gt;gt; n; cout lt;lt; endl;
cout lt;lt; "Столбцов: "; cin gt;gt; m; cout lt;lt; endl;
// создание и инициализация динамического массива
int **a=new int* [n];
for (int i=0; ilt;n; i++) {
a[i]=new int[m];
for (int j=0; jlt;m; j++)
a[i][j]=rand()4+2;
}
// вывод массива по строкам
for (int i=0; ilt;n; i++){
for (int j=0; jlt;m; j++)
cout lt;lt; a[i][j] lt;lt; " ";
cout lt;lt; endl;
}
// суммы по строкам с выводом
cout lt;lt; endl lt;lt; "Суммы по строкам" lt;lt; endl;
for (int i=0; ilt;n; i++) {
int s=0;
for (int j=0; jlt;m; j++)
s+=a[i][j];
cout lt;lt; s lt;lt; " ";
}
// очистка мусора после работы (обязательно!!!)
for (int i=0; ilt;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-gt;x.Sum).Println;
end.
#include lt;iostreamgt;
#include lt;ctimegt; // для time в srand
#include lt;stdlib.hgt;
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
srand(time(0));
int n,m;
cout lt;lt; "Строк: "; cin gt;gt; n; cout lt;lt; endl;
cout lt;lt; "Столбцов: "; cin gt;gt; m; cout lt;lt; endl;
// создание и инициализация динамического массива
int **a=new int* [n];
for (int i=0; ilt;n; i++) {
a[i]=new int[m];
for (int j=0; jlt;m; j++)
a[i][j]=rand()4+2;
}
// вывод массива по строкам
for (int i=0; ilt;n; i++){
for (int j=0; jlt;m; j++)
cout lt;lt; a[i][j] lt;lt; " ";
cout lt;lt; endl;
}
// суммы по строкам с выводом
cout lt;lt; endl lt;lt; "Суммы по строкам" lt;lt; endl;
for (int i=0; ilt;n; i++) {
int s=0;
for (int j=0; jlt;m; j++)
s+=a[i][j];
cout lt;lt; s lt;lt; " ";
}
// очистка мусора после работы (обязательно!!!)
for (int i=0; ilt;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-gt;x.Sum).Println;
end.
44