2020-10-10 PTA出错总结4

在这里插入图片描述

#include <iostream> 
#include <iomanip>
using namespace std;
int main()
{
	int n;
	float b,d=0,sum=0;
	string a,max;
	while(cin>>n)
	{
		for(int i=0;i<n;i++)
		{
			cin>>a>>b;
			if (d<b)max=a; 
			sum=sum+b;
			d=b;
		}
		cout<<max<<" "<<fixed<<setprecision(1)<<sum/n<<endl;
	}
	return 0;
}

一稿
显示答案错误
发现sum和d在使用后没有归零
加入
sum=0;d=0;
在dev-c++中成功输出样例
后还是显示答案错误
以为是输出类型的问题,把string类型改为char无果
甚至出现编译错误
后来以为是保留小数位数的问题
以为要四舍五入把fixed<<setprecision(1)改为setiosflags(ios::fixed)<<setprecision(1)
还是没有AC
最后上课问了老师
发现是在每次循环中间都把d清空无论数据是大是小
最后

#include <iostream> 
#include <iomanip>
using namespace std;
int main()
{
	int n;
	double b,d=0,sum=0;
	string a,max="";
	while(cin>>n)
	{
		for(int i=0;i<n;i++)
		{
			cin>>a>>b;
			if (d<b)
			{
				max=a;
				d=b;
			} 
			sum=sum+b;
			//d=b;
		}
		cout<<max<<" "<<fixed<<setprecision(1)<<sum/n<<endl;
		sum=0;
		d=0;
	}
	return 0;
}

Accepted

Summary
仔细观察自己的代码
寻找与题意不符的地方
即使样例输出正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值