这段代码出现了错误,提示“i”没有被初始化,有人能解决吗? 程序可以轻松编译,但在运行时,除了两个switch case之外的所有情况都能正常工作。
#include<iostream>
using namespace std;
const int m=50;
class ITEMS
{
int itemCode[m];
float itemPrice[m];
int count;
public:
void CNT(void)
{
count=0;
}
void getItem(void);
void displaySum(void);
void remove(void);
void displayItems(void);
};
使用的函数。
void ITEMS :: getItem (void)
{
cout<<"entr itm cod";
cin>> itemCode[count];
cout<<"entr itm cost";
cin>> itemPrice[count];
count++;
}
问题在这里。这个函数"displaySum(void)"必须通过将所有商品的价格相加来给出输出。
void ITEMS ::displaySum (void)
{
float sum =0;
for (int i; i<count;i++)
sum+=itemPrice[i];
cout<<"\n total value"<< sum<<endl;
}
void ITEMS ::remove (void)
{
int a;
cout<< "entr itm cod";
cin>> a;
for(int i=0; i<count;i++)
if (itemCode[i] == a)
itemPrice[i]=0;
}
void ITEMS :: displayItems(void)
{
cout<< "\n Code price\n";
for(int i=0;i<count;i++)
{
cout<<"\n" << itemCode[i];
cout<<" " << itemPrice[i];
}
cout<< endl;
}
主函数。在这里我调用了上面的所有函数,使用主函数。
int main()
{
ITEMS order;
order.CNT();
int x;
do
{
cout<< "select any opt"
<<"\n 1. add"
<<"\n 2. display total valu"
<<"\n 3. delete an item"
<<"\n 4. display all"
<<"\n 5. quit?
<<"\n number ?";
cin>> x;
switch(x)
{
case 1: order.getItem(); break;
case 2: order.displaySum(); break;
case 3: order.remove(); break;
case 4: order.displayItems(); break;
case 5: break;
default: cout<< "try again";
}
}while(x!=5);
return 0;
}
int i = 0;
,就像你在其他地方一样。 - Keith Laynefor (int i = 0; ....)
。 - Naveen