#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;
}