Advertisement
shadowlucario50

C++ Sorting by Category Test

Apr 29th, 2025
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.25 KB | Source Code | 0 0
  1. #include <iostream>
  2.  
  3. void sortArrayByCat(std::string item[], int cat[], int itemNo[], int size);
  4. void sortArrayByNo(std::string item[], int cat[], int itemNo[], int size);
  5.  
  6. int main() {
  7.     std::string category[] = {"Weapon", "Armor", "Accessory"};
  8.     int categoryI[] = {0,1,2};
  9.     std::string item[] = {"Potato", "Power Glove", "Float Stone", "Axew", "Chicken"};
  10.     int itemC[] = {1,0,2,0,2};
  11.     int itemI[] = {5,3,48,9,32};
  12.     int index;
  13.     int choice;
  14.     int sizeArray = sizeof(itemC) / sizeof(itemC[0]);
  15.  
  16.     std::cout << "Sort by Category or Item Number?\n";
  17.     std::cout << "1: Category\n";
  18.     std::cout << "2: Item Number\n";
  19.  
  20.     do {
  21.         std::cin >> choice;
  22.         std::cin.clear();
  23.         std::cin.ignore(INT_MAX,'\n');
  24.     }while(choice < 1 || choice > 3);
  25.  
  26.     if(choice == 1) {
  27.         sortArrayByCat(item,itemC,itemI,sizeArray);
  28.  
  29.         for(int i = 0; i < sizeArray; i++){
  30.             int cat = itemC[i];
  31.             //std::cout << itemC[i] << " - " << itemI[i] << " : " << item[i] << '\n';
  32.             std::cout << category[cat] << ": " << item[i] << '\n';
  33.         }
  34.     }
  35.     else if(choice == 2){
  36.         sortArrayByNo(item,itemC,itemI,sizeArray);
  37.        
  38.         for(int i = 0; i < sizeArray; i++){
  39.             int cat = itemC[i];
  40.             //std::cout << itemC[i] << " - " << itemI[i] << " : " << item[i] << '\n';
  41.             std::cout << category[cat] << ": " << item[i] << '\n';
  42.         }
  43.     }
  44.  
  45.     return 0;
  46. }
  47.  
  48. void sortArrayByCat(std::string item[], int cat[], int itemNo[], int size){
  49.     int temp1;
  50.     std::string temp2;
  51.     int temp3;
  52.  
  53.     //Sort by Category
  54.     for(int i = 0; i < size - 1; i++) {
  55.         for(int j = 0; j < size - i - 1; j++) {
  56.             if(cat[j] > cat[j + 1]) {
  57.                 temp1 = cat[j];
  58.                 temp2 = item[j];
  59.                 cat[j] = cat[j + 1];
  60.                 cat[j + 1] = temp1;
  61.                 item[j] = item[j + 1];
  62.                 item[j + 1] = temp2;
  63.             }
  64.         }
  65.     }
  66.  
  67.     //Then Sort ItemNo Within Categories
  68.     for(int i = 0; i < size; i++) {
  69.         for(int j = 0; j < size - i; j++) {
  70.             if(cat[j] == cat[j + 1]) {
  71.                 if(itemNo[j] > itemNo[j+1]) {
  72.                     temp1 = cat[j];
  73.                     temp2 = item[j];
  74.                     temp3 = itemNo[j];
  75.                     cat[j] = cat[j + 1];
  76.                     cat[j + 1] = temp1;
  77.                     item[j] = item[j + 1];
  78.                     item[j + 1] = temp2;
  79.                     itemNo[j] = itemNo[j + 1];
  80.                     itemNo[j + 1] = temp3;
  81.                 }
  82.             }
  83.         }
  84.     }
  85. }
  86.  
  87. void sortArrayByNo(std::string item[], int cat[], int itemNo[], int size){
  88.     int temp1;
  89.     std::string temp2;
  90.     int temp3;
  91.  
  92.     for(int i = 0; i < size - 1; i++) {
  93.         for(int j = 0; j < size - i - 1; j++) {
  94.             if(itemNo[j] > itemNo[j + 1]) {
  95.                 temp1 = cat[j];
  96.                 temp2 = item[j];
  97.                 temp3 = itemNo[j];
  98.                 cat[j] = cat[j + 1];
  99.                 cat[j + 1] = temp1;
  100.                 item[j] = item[j + 1];
  101.                 item[j + 1] = temp2;
  102.                 itemNo[j] = itemNo[j + 1];
  103.                 itemNo[j + 1] = temp3;
  104.             }
  105.         }
  106.     }
  107. }
Tags: C++ Code coding
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement