プログラムは保存するアイテムの数を尋ねて、アイテム名と価格を尋ねます。 最後に、すべての項目を表に表示する必要があります。重複した項目は1つの項目として表示する必要があります。小文字だけを使用してください。 表示は次のようになります。forループが正しく動作していません。C++
私の問題#1は、その価格とアイテムが別の入力に等しい場合、プログラムは1としてカウントすべきであり、アイテムの量が依存することですいくつの同じ入力(項目と価格)で
問題#2は、void関数の1番目のforループが正しく動作せず、常に項目と価格を求めて停止しない(#3)、項目番号も正しく機能していないということです。声明は、ハード・ツー・スポットの問題を持っている場合
#include<iostream>
using namespace std;
int num;
void numItems(int num){
string items[num];
double price[num];
int quantity[num];
for(int x=0;x<num;x++){
cout<<"Item #"<<x+1<<": ";
cin.get();//cin.ignore();
/*cin>>items[x];*/getline(cin,items[x]);
cout<<"Price #"<<x+1<<": ";
cin>>price[x];
if(x=1){ //(x==1) fixed
if(items[x]==items[x-1] && price[x]==price[x-1]){
quantity[x]++;
}
}
cout<<"\n\n";
}
cout<<"============RECEIPT=============\n\n";
cout<<"Items\t\t\t\tPrice\t\t\t\tQuantity"<<endl;
for(int x=0;x<num;x++){
if(x=1){
if(items[x]==items[x-1]){
cout<<items[x]<<"\t\t\t\t"<<price[x]<<"\t\t\t\t"<<quantity<<endl;
}else continue;
}
}
}
int main(){
cout<<"===ITEM AUDIT==="<<endl;
cout<<"Enter number of items to store: ";
cin>>num;
cout<<"\n\n";
numItems(num);
}
二重方程式記号ではなく、 'if(x = 1){'と書いています。 '='はC++の代入演算子なので、反復ごとに 'x'の値を1に設定します。 –
Typo。 'if(x = 1)'は、両方のループの繰り返しごとに 'x'を' 1'に設定します。あなたはおそらく 'if(x == 1)'を意図しています。 – Peter
'if(x = 1)'は 'if(x == 1)'でなければなりません。デバッガのみを使用している場合... –