Petro_zzz

Динамические массивы

Apr 10th, 2024
1,009
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void task_arr_vs_pointer();
  6. void task_dynamic_array();
  7.  
  8.  
  9. void task4() {
  10.     double arr[]{ 21.5, 25.6, 36.6, 37.2 };
  11.     for (int k = 0; k < 4; k++) {
  12.         cout << *(arr+k) << endl;
  13.     }
  14.     cout << endl;
  15. }
  16.  
  17. void task5() {
  18.     int* pArr = new int[4]{ 1,2,3,4 };
  19.     for (int k = 0; k < 4; k++)
  20.         cout << pArr[k] << endl;
  21.     delete[] pArr;
  22.  
  23.     int pArr2[]{1, 2, 3};
  24.     pArr = pArr2;
  25. }
  26.  
  27. void calc_statistic(int size, int* arr,
  28.     int& positives,
  29.     int& zeros,
  30.     int& negatives
  31.     ) {
  32.     positives = 0;
  33.     zeros = 0;
  34.     negatives = 0;
  35.     for (int k = 0; k < size; k++) {
  36.         if (arr[k] < 0)
  37.             negatives++;
  38.         else if (arr[k] > 0)
  39.             positives++;
  40.         else
  41.             zeros++;
  42.     }
  43. }
  44.  
  45. void task2() {
  46.     //int arr[]{ -3, -2, -1, 0, 1, 3, 0, 5 };
  47.     int* arr = new int[] {-3, -2, -1, 0, 1, 3, 0, 5};
  48.     int n, p, z;
  49.     calc_statistic(8, arr, p,z,n);
  50.  
  51.     cout << "pos: " << p << "\n"
  52.         << "neg: " << n << "\n"
  53.         << "zer: " << z << endl;
  54.  
  55.     delete[] arr;
  56. }
  57.  
  58. void get_sum_and_prod(
  59.     int size,
  60.     int* arr,
  61.     int& sum,
  62.     int& prod
  63. ) {
  64.     sum = 0;
  65.     prod = 1;
  66.  
  67.     //sum = arr[0] + arr[1] + arr[2] + ... + arr[size - 1];
  68.     //pord = arr[0]*arr[1]* ... arr[size-2]*arr[size-1]
  69.  
  70.     for (int k = 0; k < size; k++) {
  71.         sum += arr[k];
  72.         prod *= arr[k];
  73.     }
  74. }
  75.  
  76. void task1() {
  77.     int arr[]{ 1,2,3,4,5,6,7 };
  78.     int prod, sum;
  79.     get_sum_and_prod(7, arr, sum, prod);
  80.  
  81.     cout << "sum: " << sum << "\n"
  82.         << "prod: " << prod << endl;
  83. }
  84.  
  85. int main() {
  86.     //task4();
  87.     //task_arr_vs_pointer();
  88.     task2();
  89.     return 0;
  90. }
  91.  
  92. void task_arr_vs_pointer() {
  93.     int arr[]{ 17,2,3,4 };
  94.     cout << arr << endl;
  95.     cout << &(arr[0]) << endl;
  96.     cout << &(arr[1]) << endl;
  97.     cout << &(arr[2]) << endl;
  98.  
  99.     cout << arr << endl;
  100.     cout << arr+1 << endl;
  101.     cout << arr+2 << endl;
  102.  
  103.     // arr[k] почти тоже самое, что *(arr + k)
  104.  
  105.     cout << *(arr) << endl;
  106.     cout << *(arr + 1) << endl;
  107.     cout << *(arr + 2) << endl;
  108.  
  109.     cout << *arr << endl;
  110. }
  111.  
  112. void task_dynamic_array() {
  113.     // static
  114.     const int sn = 5;
  115.     int static_arr[sn]{};
  116.     static_arr[1] = 17;
  117.     cout << static_arr[2] << endl;
  118.    
  119.     // dynamic
  120.     int dn = 10;
  121.     int* dynamic_arr = new int[dn] {};
  122.     dynamic_arr[1] = 17;
  123.     cout << dynamic_arr[2] << endl;
  124.     delete[] dynamic_arr;
  125.  
  126. }
  127.  
  128.  
Advertisement
Add Comment
Please, Sign In to add comment