gpt4 book ai didi

c++ - 如果在数组中找到元素,则打印整行

转载 作者:行者123 更新时间:2023-11-28 03:10:51 25 4
gpt4 key购买 nike

如何在数组中搜索元素并打印整行?我一直在做这样的解决方法,但似乎无法输出我所期望的。

#include <iostream>
#include <stdlib.h>
#include <string>
#include <ctype.h>
#include <sstream>

using namespace std;

int main() {

string items[9][3] = {{"A","BALOT","25.00"},
{"B","CANTON","20.00"},
{"C","NIDO","100.00"},
{"D","KETCHUP","50.00"},
{"E","MAGGI","15.00"},
{"F","ALASKA","60.00"},
{"G","VINEGAR","25.00"},
{"H","OIL","70.00"},
{"I","COKE","10.00"}};

// PARA SA MAPRINT YUNG ARRAY.
cout << "MANG JUAN'S 10-DAHAN\n\n";
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 3; j++)
cout << items[i][j] << ( (j < 2) ? "-" : "\t" );

if (i < 6) {
cout << "\t";
i += 2;
}
else if (i != 8) {
cout << "\n";
i -= 6;
}
} // END OF ARRAY PRINTING

char choice;
int ctr = 1, quantity;
string purchased;

cout << "\n\nWOULD YOU LIKE TO PURCHASE? Y/N\n\n";
cin >> choice;

if(choice == 'n' || choice == 'N') {
cout << "Thank you. ";
}
else if(choice == 'y' || choice == 'Y') {
string numPref;
while (true) {
if(ctr > 11) {
cout << "\n\nTHE SYSTEM EXCEEDED ITS LIMIT\n\n";
break;
} else {
if(ctr == 1) numPref = "st";
else if(ctr == 2) numPref = "nd";
else if(ctr == 3) numPref = "rd";
else if(ctr > 3) numPref = "th";
}
cout << "\n\nPLEASE ENTER " << ctr << numPref << " ITEM:\t";
cin >> purchased;
if(!cin) {
cout << "Letters only";
break;
} else {
if(true) {
cout << "HOW MANY? ";
cin >> quantity;
if(!cin) {
cout << "Enter number only. ";
break;
} else {
cout << "PRICE PER ITEM: ";

///////// Look for the element and print the entire row /////////////
string matchedRow[3];
for (int i = 0; i < 3; i++) {
string oneRow[] = items[i];
if (oneRow[0] == purchased) {
matchedRow = oneRow;
break;
}
}
for (int i = 0; i < matchedRow.length; i++) {
cout << matchedRow[i] + "\t\t";
}

////////////////////////////////////////////

}


ctr++;
} // end of else - if (!cin) for quantity input check
} // end of char check

} // End of else for (!cin)

} // End of while loop for numPref


} // End of else if (choice)

system("PAUSE");
return 0;

}

例子:如果用户在Please enter item上输入A,程序会输出Price per item和数组中对应的价格。

Sample Run:
lease enter item: A // user input
How many? 3 // user input
Price per item: 25.00 // not user input

最佳答案

使用指针复制一行:

string *oneRow = items[i];

然后您可以访问价格:

oneRow[2]

修改后的程序:

#include <iostream>
#include <stdlib.h>
#include <string>
#include <ctype.h>
#include <sstream>

using namespace std;

int main() {

string items[9][3] = {{"A","BALOT","25.00"},
{"B","CANTON","20.00"},
{"C","NIDO","100.00"},
{"D","KETCHUP","50.00"},
{"E","MAGGI","15.00"},
{"F","ALASKA","60.00"},
{"G","VINEGAR","25.00"},
{"H","OIL","70.00"},
{"I","COKE","10.00"}};

// PARA SA MAPRINT YUNG ARRAY.
cout << "MANG JUAN'S 10-DAHAN\n\n";
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 3; j++)
cout << items[i][j] << ( (j < 2) ? "-" : "\t" );

if (i < 6) {
cout << "\t";
i += 2;
}
else if (i != 8) {
cout << "\n";
i -= 6;
}
} // END OF ARRAY PRINTING

char choice;
int ctr = 1, quantity;
string purchased;

cout << "\n\nWOULD YOU LIKE TO PURCHASE? Y/N\n\n";
cin >> choice;

if(choice == 'n' || choice == 'N') {
cout << "Thank you. ";
}
else if(choice == 'y' || choice == 'Y') {
string numPref;
while (true) {
if(ctr > 11) {
cout << "\n\nTHE SYSTEM EXCEEDED ITS LIMIT\n\n";
break;
} else {
if(ctr == 1) numPref = "st";
else if(ctr == 2) numPref = "nd";
else if(ctr == 3) numPref = "rd";
else if(ctr > 3) numPref = "th";
}
cout << "\n\nPLEASE ENTER " << ctr << numPref << " ITEM:\t";
cin >> purchased;
if(!cin) {
cout << "Letters only";
break;
} else {
if(true) {
cout << "HOW MANY? ";
cin >> quantity;
if(!cin) {
cout << "Enter number only. ";
break;
} else {
cout << "PRICE PER ITEM: ";

///////// Look for the element and print the entire row /////////////
string *matchedRow;
const int length = 3;
for (int i = 0; i < 3; i++) {
string *oneRow = items[i];
if (oneRow[0] == purchased) {
matchedRow = oneRow;
cout << matchedRow[2];
break;
}
}
//you don't need this
/*
for (int i = 0; i < length; i++) {
cout << matchedRow[i] + "\t\t";
}
*/
////////////////////////////////////////////

}


ctr++;
} // end of else - if (!cin) for quantity input check
} // end of char check

//} // End of else for (!cin) //spare bracket

} // End of while loop for numPref


} // End of else if (choice)

//system("PAUSE");
//return 0;

}

关于c++ - 如果在数组中找到元素,则打印整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com