C++primer plus第六版课后编程题答案 6.6

6.6
#include <iostream>
#include <string>
using namespace std;

struct donation{
	string name;
	double num;
};

void main66()
{
	cout<<"Please enter the number of people:";
	//cin>>(const int number);
	int number;
	int belowW=0; //计算小于10000的人数
	cin>>number;
	donation *p=new donation[number];//动态分配结构数组
	donation *q=p;
	int i=0;
	while(i<number)
	{
		cout<<"\nEnter the "<<i+1<<"  name:";
		cin>>q->name;
		cout<<"\nEnter the num:";
		cin>>q->num;
		if(q->num<10000)
			belowW++;
		i++;
		q++;
	}
	//q=p; //重置指针
	//测试,遍历数组是否正确
	/**
	int j=0;
	while(j<number)
	{
		cout<<q->name<<": "<<q->num<<endl;
		j++;
		q++;
	
	}*/
	//输出大于10000的
	donation *ss=new donation[belowW];//存放小于10000的捐款人信息
	donation *s=ss;
	q=p;
	int k=0;
	cout<<"Grand Patrons:"<<endl;
	while(k<number)
	{
		if(q->num>10000)
			cout<<q->name<<": "<<q->num<<endl;
		else	//小于10000的存到另一个数组
		{
			s->name=q->name;
			s->num=q->num;
			s++;
		}
		q++;
		k++;
	}
	//显示剩余的人,或者你也可以向上面一样,改一下条件即可
	
	int h=0;
	s=ss;//重置指针
	cout<<"\n\nPatronns"<<endl;
	while(h<belowW)
	{
		cout<<s->name<<": "<<s->num<<endl;
		h++;
		s++;
	}
	 
	cin.get();
	delete []p; //释放内存,仅需要释放使用New分配的内存
	delete []ss; //释放内存,
	system("pause");









}

转载于:https://www.cnblogs.com/qq84435/p/3664836.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值