Advertisement
hurmawe

TEN_cod_3

Mar 31st, 2022
1,055
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.91 KB | None | 0 0
  1. //могут понадобиться библиотеки <random>,<time.h>, <stdlib.h>,<stdio.h>, если пишешь в дженксе, или <iostream>, если в плюсах в вижуалке
  2.  
  3. int random(int N) // функция которая позволяет создавать числа в конретном диапозоне
  4. {
  5.     return rand() % N;
  6. }
  7.  
  8.  
  9. int main()
  10. {
  11.     setlocale(LC_ALL, "Russian");
  12.  
  13.     srand(time(0)); //функция которая позволяет генирировать каждый раз новые числа. time(0) возращает текущее время
  14.  
  15.     int array[10]; // наш массив
  16.     int max_1 = INT16_MIN; // наши будущие максимальные числа, которым задаем самое минимальное значение прописанные в С как константы
  17.     int max_2 = INT16_MIN;
  18.     int pos_max_1; // позиции максимальных чисел
  19.     int pos_max_2;
  20.  
  21.     printf("Исходный массив "); //пишем слова |_|
  22.     for (int i = 0; i < 10; i++) // тут мы сразу будем генирировать, находить максимальные, а также выводить. Далается это с цельую, чтобы не обходить весь массив трижды. Так как мы каждый раз идем слева направо и не производим с числами действий мы можем себе такое позволить.
  23.     {
  24.         array[i] = random(21) - 10; // генириум. мы указали диапозон от 0 до 20 (обе границы включительно) и потом вычитаем, так как хотим от -10 до 10. rand() не может генировать отрицатльные числа, так как основана на возведении в квадрат
  25.         if (max_1 < array[i]) // смотрим больше ли наше число. в первом случае всегда заходит
  26.         {
  27.             max_1 = array[i];
  28.             pos_max_1 = i;
  29.         }
  30.         else if (max_2 < array[i] && array[i] != max_1) // проверяем не совпала ли наше число с предудыщим максимумом( чтобы не было двух 10(в теории по его задании, две 10 правильно, но он херово дал Т3))
  31.         {
  32.             max_2 = array[i];
  33.             pos_max_2 = i;
  34.         }
  35.         printf("%d ", array[i]); // печатаем наше получившее число, после чего вновь генерируем новое в начале цикла
  36.     }
  37.     printf("\nМаксимальные: a[%d] = %d, a[%d] = %d", pos_max_1, max_1, pos_max_2, max_2); // каждый элемент будет постепенно входить в %d
  38.  
  39. }
  40.  
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement