Facebook
From T, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 239
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <sstream>
  4. #include <string>
  5.  
  6. using namespace std;
  7. stringstream ss;
  8.  
  9. int* createArray(int size) {
  10.         int* arr = new int[size];
  11.         for (int i = 0; i <= size - 1; i++) {
  12.                 *(arr + i) = rand() % 100 + 1;
  13.         }
  14.         return arr;
  15. }
  16.  
  17. void printArray(int* arr, int size, string msg) {
  18.         cout << endl << msg;
  19.         for (int i = 0; i < size; i++) {
  20.                 cout << arr[i] << ", ";
  21.         }
  22.         cout << endl;
  23. }
  24.  
  25. int* sort(int type, int* arr, int size) {
  26.         int i = size;
  27.         do {
  28.                 for (int j = 0; j < size - 1; j++) {
  29.                         if (((arr[j] > arr[j + 1]) && type == 1) || ((arr[j] < arr[j + 1]) && type == 0)) {
  30.                                 int temp = arr[j];
  31.                                 arr[j] = arr[j + 1];
  32.                                 arr[j + 1] = temp;
  33.                         }
  34.                 }
  35.                 i--;
  36.         } while (i > 1);
  37.         return arr;
  38. }
  39.  
  40. int* arrayContains(int* arr, int size) {
  41.         int item;
  42.         int count = 0;
  43.         cout << "Podaj liczbe ktora chcesz znalezc: " << endl;
  44.         cin >> item;
  45.         ss.str("");
  46.  
  47.         for (int i = 0; i < size - 1; i++) {
  48.                 if (arr[i] == item) {
  49.                         count++;
  50.                         ss << i << ", ";
  51.                 }
  52.         }
  53.  
  54.         string indexes = ss.str();
  55.         cout << endl << "Element wystepuje: " << count << " razy." << endl << "W indeksach: " << indexes << endl;
  56.         return arr;
  57. }
  58.  
  59. void menu(int* arr, int size) {
  60.         int choice;
  61.         do {
  62.                 cout << endl << "Menu:" << endl
  63.                         << "1. Sortowanie malejace" << endl
  64.                         << "2. Sortowanie rosnace" << endl
  65.                         << "3. Sprawdz czy element znajduje sie w tablicy" << endl
  66.                         << "4. Zamknij program" << endl;
  67.                 cin >> choice;
  68.  
  69.                 switch (choice) {
  70.                 case 1:
  71.                         sort(0, arr, size);
  72.                         printArray(arr, size, "Tablica posortowana malejaco: ");
  73.                         break;
  74.                 case 2:
  75.                         sort(1, arr, size);
  76.                         printArray(arr, size, "Tablica posortowana rosnaco: ");
  77.                         break;
  78.                 case 3:
  79.                         arrayContains(arr, size);
  80.                         break;
  81.                 case 4:
  82.                         break;
  83.                 }
  84.         } while (choice != 4);
  85. }
  86.  
  87. int main() {
  88.         int size;
  89.         do {
  90.                 cout << "Podaj wielkosc tablicy: " << endl;
  91.                 cin >> size;
  92.  
  93.                 if (size >= 100) {
  94.                         int *arr = createArray(size);
  95.                         printArray(arr, size, "Tablica: ");
  96.                         menu(arr, size);
  97.                 }
  98.                 else {
  99.                         cout << "Za mala tablica." << endl;
  100.                 }
  101.         } while (size < 100);
  102.  
  103.         return 0;
  104. }