Создайте двумерный массив целого типа заданного размера, M строк и N столбцов. Задайте...

0 голосов
46 просмотров

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


Информатика (35 баллов) | 46 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
#include
#include
#include // для time в srand
#include
using namespace std;
     
int main() {
     
  setlocale(LC_ALL, "rus");
  srand(time(0));
     
  int n,m;
     
  cout << "Строк: "; cin >> n; cout << endl;<br>  cout << "Столбцов: "; cin >> m; cout << endl;<br>     
  // создание и инициализация динамического массива
  int **a=new int* [n];
  for (int i=0; i    a[i]=new int[m];
  for (int j=0; j    a[i][j]=rand()%4+2;
               }
  // вывод массива по строкам          
  for (int i=0; i    for (int j=0; j      cout << a[i][j] << "   ";<br>    cout << endl;<br>    }
     
  // суммы по строкам с выводом
  cout << endl << "Суммы по строкам" << endl;<br>  for (int i=0; i    int s=0;
    for (int j=0; j      s+=a[i][j];
    cout << s << " ";<br>    }
     
  // очистка мусора после работы (обязательно!!!)
  for (int i=0; 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.
(150k баллов)