《C++程序设计语言》6.6_3 (名字,值)对

/*-------------------------------------------------------
读入一系列由空白分隔的(名字,值)对,其中每个名字是由空白分隔开的一个
单词,值是一个整数或者一个浮点数。计算并打印出对应于每个名字的所有值之和
与平均值,以及所有名字的和与平均值。
-------------------------------------------------------*/
#include <iostream>
#include <string>
#include <map>
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::map;
void create(map<string, double>& cmap)
{
	string cstr;
	double cdou;

	cout << "Please input date(name and double-value):\n";
	cin >> cstr;
	while (cstr != "quit")
	{
		cin >> cdou;
		cmap[cstr] = cdou;
		cin >> cstr;
	}
}

void show(map<string, double>& smap)
{
	map<string, double>::iterator iter;
	cout << "\nLet's show date of the map:\n"
		 << "Name		Value" << endl;
	for (iter = smap.begin(); iter != smap.end(); iter++)
		cout << iter->first << "		"
			 << iter->second << endl;
	cout << endl;
}

void calculate(map<string, double>& cmap, double& csum, double& caverage)
{
	map<string, double>::iterator iter;
	for (iter = cmap.begin(); iter != cmap.end(); iter++)
		csum += iter->first.size();
	caverage = csum/cmap.size();
	cout << "Name of the map included " << csum << " bytes!\n"
		 << "the average of name is " << caverage << " byte!\n";
	csum = caverage = 0;
	for (iter = cmap.begin(); iter != cmap.end(); iter++)
		csum += iter->second;
	caverage = csum/cmap.size();
	cout << "\nthe sum of double-value of the map is " << csum << ".\n"
		 << "the average of sum is " << caverage << ".\n";
	csum = caverage = 0;
}

int main()
{
	map<string, double> mmap;
	double sum = 0, average = 0;
	create(mmap);
	show(mmap);
	calculate(mmap, sum, average);

	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值