• Предмет: Информатика
  • Автор: TAO9909
  • Вопрос задан 11 месяцев назад

объясните пожалуйста подробно как работают эти две программы. а именно что за что отвечает и зачем пожалуйста

#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;

}


fedrfedr: что такое "сумма натурального числа" ?
TAO9909: тип вводим 22, сумма 2+2=4-то честное число; ввели 124 сумма 1+2+4=7-нечетное число
fedrfedr: Понятно. это сумма цифр числа. делать уже некогда, домой пора. в понедельник будет уже поздно?
TAO9909: а у вы не сможете до завтрашнего вечера сделать? мне очень нужен код
fedrfedr: дома нет к сожалению, извините...
TAO9909: а в понедельник до скольки можете примерно
TAO9909: ???

Ответы

Ответ дал: fedrfedr
1

Ответ:

Программа №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;

}

Вас заинтересует