Petro_zzz

lesson15_322

Sep 13th, 2023
1,038
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int get_rand(int a, int b) {
  6.     return rand() % (b - a + 1) + a;
  7. }
  8.  
  9. void test_size() {
  10.     const int size = 5;
  11.     int arr[size];
  12.  
  13.     int a = 14;
  14.     double b = 0.1;
  15.  
  16.     cout << "size int:" << sizeof(a)
  17.         << " " << &a << endl;
  18.     cout << "size double:" << sizeof(b)
  19.         << " " << &b << endl;
  20.     cout << "size arr(5-int):" << sizeof(arr)
  21.         << " " << &arr << endl;
  22.     cout << "size arr[0]:" << sizeof(arr[0])
  23.         << " " << &arr[0] << endl;
  24.     cout << "size arr:"
  25.         << sizeof(arr) / sizeof(arr[0]) << endl;
  26. }
  27.  
  28. void show_arr(int size, int arr[]) {
  29.     // Причина по которой мы не используем sizeof при вызове функции
  30.     //cout << "size in fun:" << sizeof(arr) << endl;   
  31.     for (int k = 0; k < size; k++) {
  32.         cout << arr[k] << " ";
  33.     }
  34.     cout << endl;
  35. }
  36.  
  37. void generate_arr(int size, int arr[]) {
  38.     for (int k = 0; k < size; k++) {
  39.         arr[k] = get_rand(-10, 10);
  40.     }
  41. }
  42.  
  43. void test0() {
  44.     const int size = 4;
  45.     int vects[size]{ 4,5,6,8 };
  46.     int sum = 0;
  47.  
  48.     for (int k = 0; k < size; k++) {
  49.         sum += vects[k];
  50.     }
  51.     cout << sum << endl;
  52. }
  53.  
  54. void test_rand_array() {
  55.     const int size = 10;
  56.     int arr[size];
  57.     int arr2[size];
  58.     int arr3[size];
  59.    
  60.     generate_arr(size, arr);   
  61.     for (int k = 0; k < size; k++) {
  62.         arr2[k] = arr[size - k - 1];
  63.     }
  64.  
  65.     for (int k = 0; k < size; k++) {
  66.         arr3[k] = arr[k] + arr2[k];
  67.     }
  68.  
  69.     int negativ = 0;
  70.     for (int k = 0; k < size; k++) {
  71.         if (arr[k] < 0)
  72.             negativ++;
  73.     }
  74.     cout << "negativ: " << negativ << endl;
  75.  
  76.     int concat_arr[2 * size];
  77.     /*
  78.     // Заменили этот сложночитаемый код на простой
  79.     for (int k = 0; k < (2*size); k++) {
  80.         if (k < size) {
  81.             concat_arr[k] = arr[k];
  82.         }
  83.         else {
  84.             concat_arr[k] = arr2[k-size];
  85.         }
  86.     }
  87.     */
  88.  
  89.     for (int k = 0; k < size; k++) {
  90.         concat_arr[k] = arr[k];
  91.         concat_arr[k+size] = arr2[k];
  92.     }
  93.  
  94.     int max = arr[0];
  95.     int min = arr[0];
  96.     for (int k = 1; k < size; k++) {
  97.         max = (max < arr[k]) ? arr[k] : max;
  98.         min = (min > arr[k]) ? arr[k] : min;
  99.     }
  100.     cout << "max: " << max << " min: " << min << endl;
  101.  
  102.     show_arr(size, arr);
  103.     //show_arr(size, arr2);
  104.     //show_arr(size, arr3);
  105.     show_arr(2 * size, concat_arr);
  106. }
  107.  
  108. void test_maxs() {
  109.     const int size = 100;
  110.     int arr[size];
  111.     generate_arr(size, arr);
  112.  
  113.     int max = arr[0];
  114.     int id_maxs[size];
  115.     int num_max = 0;
  116.  
  117.     for (int k = 1; k < size; k++)
  118.         max = (max < arr[k]) ? arr[k] : max;
  119.  
  120.     for (int k = 0; k < size; k++) {
  121.         if (arr[k] == max) {
  122.             id_maxs[num_max] = k;
  123.             num_max++;
  124.         }
  125.     }
  126.  
  127.     show_arr(size, arr);
  128.     cout << max << endl;
  129.     show_arr(num_max, id_maxs);
  130. }
  131.  
  132. int main() {
  133.     srand(time(NULL));
  134.     //test_rand_array();
  135.     test_maxs();
  136. }
Advertisement
Comments
Add Comment
Please, Sign In to add comment