1.. Написать программу на языке C++. В одномерном массиве, состоящем из N целых элементов, вычислите сумму элементов массива, расположенных после максимального элемента.
2. Написать программу на языке C++. Дана целочисленная матрица A(N, N). Найдите в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. Матрицу напечатать в общепринятом виде.
Answers & Comments
Verified answer
Ответ:
Программа № 1
#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;
}