一个C++程序,不知哪出错,请高手详细指教,谢.(前面已问过,未解决,所以如能解决赏20分)

王朝知道·作者佚名  2012-06-14
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

#include <iostream>

#include <string>

struct donation{

double money;

string name;

}

int main()

{

using namespace std;

cout<<"Enter the number of donators: ";

int size,i;

cin>>size;

donation * ps = new donation[size];

for (i=0;i<size;i++)

{

cout<<"name"<<i+1<<": ";

getline(cin,(*ps)[i].name);

cout<<"money "<<i+1<<": ";

cin>>(*ps)[i].money;

cin.get();

}

cout<<"Grand Patrons:\n";

for (i=0;i<size;i++)

{

if ((*ps)[i].money>10000)

{

cout<<(*ps)[i].name<<endl;

cout<<(*ps)[i].money<<endl;

}

}

if(i==0)

cout<<"none\n";

cout<<"Patrons:\n";

for (i=0;i<size;i++)

{

if ((*ps)[i].money<10000)

{

cout<<(*ps)[i].name<<endl;

cout<<(*ps)[i].money<<endl;

}

}

if(i==0)

cout<<"none\n";

return 0;

}

程序说明:输几个人名和捐款数,然后根据10000分成两堆.

參考答案:

#include <iostream>

#include <string>

using namespace std; //加上

struct donation{

double money;

string name;

};

int main()

{

//using namespace std;

cout<<"Enter the number of donators: ";

int size,i;

(cin>>size).get();

donation * ps = new donation[size];

for (i=0;i<size;i++)

{

cout<<"name"<<i+1<<": ";

getline(cin,ps[i].name); // 数组名就是数组首元素地址,所以ps[i]就是在对应数组位置的结构,无需(*ps)[i]

cout<<"money "<<i+1<<": ";

cin>>ps[i].money;

cin.get();

}

cout<<"Grand Patrons:\n";

for (i=0;i<size;i++)

{

if (ps[i].money>10000)

{

cout<<ps[i].name<<endl;

cout<<ps[i].money<<endl;

}

}

if(i==0)

cout<<"none\n";

cout<<"Patrons:\n";

for (i=0;i<size;i++)

{

if (ps[i].money<10000)

{

cout<<ps[i].name<<endl;

cout<<ps[i].money<<endl;

}

}

if(i==0)

cout<<"none\n";

return 0;

}

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航