объясните пожалуйста подробно как работают эти две программы. а именно что за что отвечает и зачем пожалуйста
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int n, i, imax, s;
cout « "Размерность массива: ";
cin » n;
int* a = new int[n];
srand (time (NULL));
for (i = 0; i < n; i++) {
a[i] = (double) rand() / (RAND_MAX + 1) * 100;
cout « a[i] « ' ';
}
imax = 0;
for (i = 0; i < n; i++) {
if (a[i] > a[imax])
imax = i;
}
cout « "\nиндекс максимального элемента = " « imax;
s = 0;
for (i = imax + 1; i < n; i++) {
s = s + a[i];
}
cout « "\nСумма после максимального = " « s « '\n';
return 0;
}
Программа №2
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int n, i, j, jmax, jmin;
cout « "Размерность массива: ";
cin » n;
srand (time (NULL));
int** a = new int* [n];
for (i = 0; i < n; i++)
a[i] = new int[5];
for (i = 0; i < n; i++) {
cout « "\n";
for (j = 0; j < n; j++) {
a[i][j] = (double)rand() / (RAND_MAX + 1) * 100;
cout « setw(4) « a[i][j] « ' ';
}
}
for (i = 0; i < n; i++) {
jmax = 0;
jmin = 0;
for (j = 0; j < n; j++) {
if (a[i][j] > a[i][jmax])
jmax = j;
if (a[i][j] < a[i][jmin])
jmin = j;
}
a[i][0] = a[i][jmax];
a[i][n-1] = a[i][jmin];
}
cout « "\n\nРезультат:\n";
for (i = 0; i < n; i++) {
cout « "\n";
for (j = 0; j < n; j++) {
cout « setw(4) « a[i][j] « ' ';
}
}
cout « "\n";
return 0;
}
Answers & Comments
Verified answer
Ответ:
Программа №1
#include <iostream>
#include <time.h>
using namespace std; // чтобы не писать std:: каждый раз перед cin cout
int main()
{
setlocale(LC_ALL, "Russian"); // для правильного отображения русского текста на экране
int n, i, imax, s;
cout << "Размерность массива: ";
cin >> n; // вводится размерность массива
int* a = new int[n]; // создается новый массив размерностью n
srand(time(NULL)); // инициализация датчика случайных чисел
for (i = 0; i < n; i++) { // цикл заполнения массива случайными числами от 0 до 100
a[i] = (double)rand() / (RAND_MAX + 1) * 100; // случайное число в элемент массива
cout << a[i] << ' '; // и вывести его на экран
}
imax = 0; // начальное значение для индекса
for (i = 0; i < n; i++) { //цикл для всех элементов массива
if (a[i] > a[imax]) // если найден элемент массива больше текущего, то сохраняем его индекс
imax = i; //, то сохраняем его индекс
}
cout << "\nиндекс максимального элемента = " << imax; // выводим этот индекс на экран
s = 0; // начальное значение для суммы
for (i = imax + 1; i < n; i++) { //цикл начиная от максимального индекса до конца массива
s = s + a[i]; // суммируем элементы
}
cout << "\nСумма после максимального = " << s << '\n'; // вывыод
return 0;
}
// Программа №2
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std; // то же что в первой программе, повторять не буду
int main()
{
setlocale(LC_ALL, "Russian");
int n, i, j, jmax, jmin;
cout << "Размерность массива: ";
cin >> n; // вводится размерность массива
srand(time(NULL));
int** a = new int* [n]; // создается в памяти новый 2-х мерный массив размерностью n строк
for (i = 0; i < n; i++)
a[i] = new int[5]; // для каждой строки массива создается в памяти столбец (размерность скорее всего нужно заменить на [n])
for (i = 0; i < n; i++) { // цикл для всех строк массива
cout << "\n";
for (j = 0; j < n; j++) { // цикл для всех столбцов массива
a[i][j] = (double)rand() / (RAND_MAX + 1) * 100; // в элемент массива случайное число от 0 до 100
cout << setw(4) << a[i][j] << ' '; // и выводим его на экран
}
}
for (i = 0; i < n; i++) { // цикл для всех строк массива
jmax = 0; // инициализация максимального и минимального индексов
jmin = 0;
for (j = 0; j < n; j++) { // цикл для всех столбцов массива
if (a[i][j] > a[i][jmax]) // если элемент массива больше максимального
jmax = j; // сохраняем его индекс
if (a[i][j] < a[i][jmin]) // если элемент массива меньше минимального
jmin = j; // сохраняем его индекс
}
a[i][0] = a[i][jmax]; // замена первого элемента строки максимальным элементом
a[i][n - 1] = a[i][jmin]; // замена последнего элемента строки минимальным элементом
}
cout << "\n\nРезультат:\n";
for (i = 0; i < n; i++) { // вывод результата вычислений
cout << "\n";
for (j = 0; j < n; j++) {
cout << setw(4) << a[i][j] << ' ';
}
}
cout << "\n";
return 0;
}