Advertisement
Cinestra

Array Problems

Jan 7th, 2023
784
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.54 KB | None | 0 0
  1. // SpecialArrays.cpp : This file contains the 'main' function. Program execution begins and ends there.
  2. //
  3.  
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. void init(int array[], int max_size)
  8. {
  9.     array[0] = max_size;
  10.     array[1] = 0;
  11. }
  12.  
  13. bool add(int array[], int value)
  14. {
  15.     if (array[1] < array[0])
  16.     {
  17.         int entry_number = array[1] + 2;
  18.         array[entry_number] = value;
  19.  
  20.         array[1] += 1;
  21.         return true;
  22.     }
  23.  
  24.     else return false;
  25. }
  26.  
  27. bool find_value(int array[], int value)
  28. {
  29.     for (int i = 2; i < array[1] + 2; i++)
  30.     {
  31.         if (array[i] == value)
  32.         {
  33.             return true;
  34.         }
  35.     }
  36.  
  37.     return false;
  38. }
  39.  
  40. int count_value(int array[], int value)
  41. {
  42.     int count = 0;
  43.  
  44.     if (find_value(array, value))
  45.     {
  46.         for (int i = 2; i < array[1] + 2; i++)
  47.         {
  48.             if (array[i] == value)
  49.             {
  50.                 count++;
  51.             }
  52.         }
  53.     }
  54.  
  55.     return count;
  56. }
  57.  
  58. bool delete_all(int array[], int value)
  59. {
  60.     if (find_value(array, value))
  61.     {
  62.         int temp_max_size = array[1];
  63.  
  64.         for (int i = 2; i < array[1] + 2; i++)
  65.         {
  66.             if (array[i] == value)
  67.             {
  68.                 for (int j = i; j < array[1] + 2; j++)
  69.                 {
  70.                     array[j] = array[j + 1];
  71.                 }
  72.  
  73.                 array[1] -= 1;
  74.                 i--;
  75.             }
  76.         }
  77.  
  78.         return true;
  79.     }
  80.  
  81.     else
  82.     {
  83.         return false;
  84.     }
  85. }
  86.  
  87. void reverse_array(int array[])
  88. {
  89.     int temp;
  90.  
  91.     for (int i = 2; i < array[1] / 2 + 2; i++)
  92.     {
  93.         int j = (array[1] + 1) - i + 2;
  94.         // (array[1]+1) is the location of the last element
  95.         // Want to decrement by 1 each time, but i is initialized as 2 so we will add 2 at the end.
  96.  
  97.         temp = array[i];
  98.         array[i] = array[j];
  99.         array[j] = temp;
  100.     }
  101. }
  102.  
  103. void sort(int array[], bool ascending)
  104. {
  105.     int temp;
  106.  
  107.     for (int i = 2; i < array[1] + 2; i++)
  108.     {
  109.         for (int j = i + 1; j < array[1] + 2; j++)
  110.         {
  111.             if (array[j] < array[i])
  112.             {
  113.                 temp = array[i];
  114.                 array[i] = array[j];
  115.                 array[j] = temp;
  116.             }
  117.         }
  118.     }
  119. }
  120.  
  121. int main()
  122. {
  123.     int max = 50;
  124.     int array[100];
  125.  
  126.     init(array, max);
  127.     cout << "Max array is " << array[0] << endl;
  128.     cout << array[1] << endl;
  129.  
  130.     int added_value = 80;
  131.     add(array, added_value);
  132.     cout << array[1] << endl;
  133.     cout << array[2] << endl;
  134.  
  135.     bool if_eighty_there = find_value(array, 80);
  136.     if (if_eighty_there)
  137.     {
  138.         cout << "true" << endl;
  139.     }
  140.     else
  141.     {
  142.         cout << "false" << endl;
  143.     }
  144.  
  145.     add(array, 80);
  146.     cout << array[1] << endl;
  147.     cout << array[3] << endl;
  148.  
  149.     int count = count_value(array, 80);
  150.     cout << "There are this many 80s: " << count <<endl;
  151.     int new_count = count_value(array, 70);
  152.     cout << "There are this many 70s: " << new_count << endl;
  153.  
  154.     cout << "The array is: " << array[0] << " " << array[1] << " " << array[2] << " " << array[3] << endl;
  155.     delete_all(array, 80);
  156.     cout << "The array is: " << array[0] << " " << array[1] << " " << array[2] << " " << array[3] << endl;
  157.  
  158.     int new_array[100];
  159.     int new_max = 20;
  160.     init(new_array, new_max);
  161.     add(new_array, 1);
  162.     add(new_array, 3);
  163.     add(new_array, 2);
  164.     add(new_array, 5);
  165.     cout << "The array is: " << new_array[0] << " " << new_array[1] << " " << new_array[2] << " " << new_array[3] << " " << new_array[4] << " " << new_array[5] << endl;
  166.     sort(new_array, 1);
  167.     cout << "The array is: " << new_array[0] << " " << new_array[1] << " " << new_array[2] << " " << new_array[3] << " " << new_array[4] << " " << new_array[5] << endl;
  168.  
  169.     reverse_array(new_array);
  170.     cout << "The array is: " << new_array[0] << " " << new_array[1] << " " << new_array[2] << " " << new_array[3] << " " << new_array[4] << " " << new_array[5] << endl;
  171.  
  172.     int new_array2[100];
  173.     int new_max2 = 65;
  174.     init(new_array2, new_max2);
  175.     add(new_array2, 39);
  176.     add(new_array2, 515);
  177.     add(new_array2, 81);
  178.     add(new_array2, 922);
  179.     cout << "The array is: " << new_array2[0] << " " << new_array2[1] << " " << new_array2[2] << " " << new_array2[3] << " " << new_array2[4] << " " << new_array2[5] << endl;
  180.     reverse_array(new_array2);
  181.     cout << "The array is: " << new_array2[0] << " " << new_array2[1] << " " << new_array2[2] << " " << new_array2[3] << " " << new_array2[4] << " " << new_array2[5] << endl;
  182.  
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement