Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- void sortArrayByCat(std::string item[], int cat[], int itemNo[], int size);
- void sortArrayByNo(std::string item[], int cat[], int itemNo[], int size);
- int main() {
- std::string category[] = {"Weapon", "Armor", "Accessory"};
- int categoryI[] = {0,1,2};
- std::string item[] = {"Potato", "Power Glove", "Float Stone", "Axew", "Chicken"};
- int itemC[] = {1,0,2,0,2};
- int itemI[] = {5,3,48,9,32};
- int index;
- int choice;
- int sizeArray = sizeof(itemC) / sizeof(itemC[0]);
- std::cout << "Sort by Category or Item Number?\n";
- std::cout << "1: Category\n";
- std::cout << "2: Item Number\n";
- do {
- std::cin >> choice;
- std::cin.clear();
- std::cin.ignore(INT_MAX,'\n');
- }while(choice < 1 || choice > 3);
- if(choice == 1) {
- sortArrayByCat(item,itemC,itemI,sizeArray);
- for(int i = 0; i < sizeArray; i++){
- int cat = itemC[i];
- //std::cout << itemC[i] << " - " << itemI[i] << " : " << item[i] << '\n';
- std::cout << category[cat] << ": " << item[i] << '\n';
- }
- }
- else if(choice == 2){
- sortArrayByNo(item,itemC,itemI,sizeArray);
- for(int i = 0; i < sizeArray; i++){
- int cat = itemC[i];
- //std::cout << itemC[i] << " - " << itemI[i] << " : " << item[i] << '\n';
- std::cout << category[cat] << ": " << item[i] << '\n';
- }
- }
- return 0;
- }
- void sortArrayByCat(std::string item[], int cat[], int itemNo[], int size){
- int temp1;
- std::string temp2;
- int temp3;
- //Sort by Category
- for(int i = 0; i < size - 1; i++) {
- for(int j = 0; j < size - i - 1; j++) {
- if(cat[j] > cat[j + 1]) {
- temp1 = cat[j];
- temp2 = item[j];
- cat[j] = cat[j + 1];
- cat[j + 1] = temp1;
- item[j] = item[j + 1];
- item[j + 1] = temp2;
- }
- }
- }
- //Then Sort ItemNo Within Categories
- for(int i = 0; i < size; i++) {
- for(int j = 0; j < size - i; j++) {
- if(cat[j] == cat[j + 1]) {
- if(itemNo[j] > itemNo[j+1]) {
- temp1 = cat[j];
- temp2 = item[j];
- temp3 = itemNo[j];
- cat[j] = cat[j + 1];
- cat[j + 1] = temp1;
- item[j] = item[j + 1];
- item[j + 1] = temp2;
- itemNo[j] = itemNo[j + 1];
- itemNo[j + 1] = temp3;
- }
- }
- }
- }
- }
- void sortArrayByNo(std::string item[], int cat[], int itemNo[], int size){
- int temp1;
- std::string temp2;
- int temp3;
- for(int i = 0; i < size - 1; i++) {
- for(int j = 0; j < size - i - 1; j++) {
- if(itemNo[j] > itemNo[j + 1]) {
- temp1 = cat[j];
- temp2 = item[j];
- temp3 = itemNo[j];
- cat[j] = cat[j + 1];
- cat[j + 1] = temp1;
- item[j] = item[j + 1];
- item[j + 1] = temp2;
- itemNo[j] = itemNo[j + 1];
- itemNo[j + 1] = temp3;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement