新手求教,程序没有检测出错误,但运行老出错。。。。
下面是程序:
#include<iostream>
#include<string>
int main()
{
using namespace std;
struct pat{
string name;
double money;
};
int n;
cout<<"Please enter the number of patrons: ";
cin>>n;
cin.get();
pat * pc=new pat[n];
for(int i=0;i<n;i++)
{
cout<<"Please enter the name: ";
getline(cin,pc[i].name);
cout<<"Please enter the money: ";
cin>>pc[i].money;
cin.get();
}
int number=0;
cout<<"Grand patrons :"<<endl;
for(int i=0;i<n;i++)
{
if(pc[i].money>10000)
{
cout<<pc[i].name<<endl;
number++;
}
}
if(number==0)
cout<<"None"<<endl;
number=0;
cout<<"Patrons :"<<endl;
{
for(int i=0;i<5;i++)
if(pc[i].money<10000)
{
cout<<pc[i].name<<endl;
number++;
}
}
if(number==0)
cout<<"None"<<endl;
delete [] pc;
return 0;
}
求大神指教。。。
[解决办法]
for(int i=0;i<5;i++)把这儿的i < 5;改成i < n;就没问题了。如果测试者输入的数据个数小于5个,那么是不是会有溢出的可能性呢,我想不是可能,应该一定会的。