编写一个程序,记录捐助给“维护合法权利团体”的资金。该程序要求用户输入捐献者数目,然后要求用户输入每一个捐献者的姓名和款项。这些信息被储存在一个动态分配的结构数组中。每个结构有两个成员:用来储存姓名的字符数组(或 string 对象)和用来存储款项的 double 成员。读取所有的数据后程序将显示所有捐款超过 10000 的捐款者的姓名及其捐款数额。该列表前应包含一个标题,指出下面的捐款者是重要捐款人(Grand Patrons)。然后,程序将列出其他的捐款者,该列表要以 Patrons 开头。如果某种类别没有捐款者,则程序将打印单词“none”。该程序只显示这两种类别,而不进行排序。
#include <iostream> #include <vector> using namespace std; struct Donation { string name = ""; double money = 0; }; int main(){ int num; //把所有捐款超过 10000 的捐款者的姓名及其捐款数额保存在maxPerson容器里, //其它的保存在minPerson容器里 vector<Donation> maxPerson; vector<Donation> minPerson; cout << "请输入捐款者的人数:"; cin >> num; Donation* donater = new Donation[num]; for (int i = 0; i < num; i++) { cout << "请输入第 " << i + 1 << " 位捐款者的姓名和款项:"; cin >> donater[i].name >> donater[i].money; if (donater[i].money > 10000) { maxPerson.push_back(donater[i]); } else { minPerson.push_back(donater[i]); } //cin.sync(); } cout << "***********Grand Patrons**************" << endl; if (maxPerson.size()) { for (auto a : maxPerson) { cout << "姓名:" << a.name << "\t捐献款项:" << a.money << endl; } } else { cout << "none" << endl; } cout << "***********Patrons**************" << endl; if (minPerson.size()) { for (auto b : minPerson) { cout << "姓名:" << b.name << "\t捐献款项:" << b.money << endl; } } else { cout << "none" << endl; } delete[] donater; return 0; }标签:donater,程序,捐款,捐款者,姓名,捐献者 From: https://www.cnblogs.com/smartlearn/p/17901020.html