完整题目:
编写一个程序, 记录捐助给“维护合法权利团体”的资金。该程序要求用户输入捐献者数目, 然后 要求用户输入每一个捐献者的姓名和款项。这些信息被储存在一个动态分配的结构数组中。每个结构有两 个成员:用来储存姓名的字符数组(或 string 对象)和用来存储款项的 double 成员。读取所有的数据后, 程序将显示所有捐款超过 10000 的捐款者的姓名及其捐款数额。该列表前应包含一个标题,指出下面的捐 款者是重要捐款人(Grand Patrons)。然后,程序将列出其他的捐款者,该列表要以 Patrons 开头。如果某 种类别没有捐款者,则程序将打印单词“none ”。该程序只显示这两种类别,而不进行排序。
完整代码:
#include<iostream>
#include<string>
using namespace std;
//定义捐赠者结构体
struct Donater {
string name;
double money;
};
//创建一个结构体对象并接受键盘的值,然后返回该地址
Donater* create(int person)
{
Donater* donater = new Donater[person];
for (int i = 0; i < person; i++)
{
cout << "请输入捐赠者姓名: ";
cin >> donater[i].name;
cout << "请输入捐赠者款项: ";
cin >> donater[i].money;
}
return donater;
}
int main()
{
int person, count1=1,count2=1,count3=0,count4=0;
cout << "请输入捐赠者人数: ";
cin >> person;
Donater* p = create(person);
for (int i = 0; i < person; i++)
{
if (p[i].money >= 10000)
{
while (1==count1)
{
cout << "下面是重要捐款人" << endl;
count1++;
}
count3++;
cout << p[i].name << "\t"<< p[i].money<<endl;
}
else if (p[i].money < 10000 && p[i].money>0)
{
while (1 == count2)
{
cout << "下面是Patrons类捐款" << endl;
count2++;
}
count4++;
cout << p[i].name << "\t" << p[i].money << endl;
}
}
if (0 == count3)
{
cout << "下面是重要捐款人" << endl;
cout << "None" << endl;
}
if (0 == count4)
{
cout << "下面是Patrons类捐款" << endl;
cout << "None" << endl;
}
}
代码结果: