备考蓝桥杯.day1

备考蓝桥杯.day1

编程基础通关1.1

1. 成绩统计(2020年11届蓝桥杯大赛省赛C/C++B组F)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,x,cnt1=0,cnt2=0;//别忘记将cnt1,cnt2初始化
	int ratio1,ratio2;
	cin>>n;
	for(int i = 1;i<=n ;i++){
		cin>>x;
		if(x>=60) cnt1++;//cnt1++等价于cnt1=cnt1+1;
		if(x>=85) cnt2++;
	}

	/*下面注释为错误代码(ratio1,ratio2定义的是整型,只能保留整数,不能进行四舍五入)
	ration=1.0*cnt1/n*100;
	ration=1.0*cnt2/n*100;
	cout<<ratio1<<"%"<<endl;
	cout<<ratio2<<"%"<<endl;
	*/
	
	//用setprecision(x)和fixed共用可保留x位小数
	cout<<setprecision(0)<<fixed<<(1.0*cnt1/n*100)<<"%\n"<<(1.0*cnt2/n*100)<<"%\n";
	return 0;
}

2. 成绩分析(2020年11届蓝桥杯大赛省赛C/C++A组F)

代码一(易懂)

#include<bits/stdc++.h>
const int N = 1e4+10;
using namespace std;
int main()
{
	int n,sum,max,min,a[N];
	double avg;
	sum = 0;max = 0;min = 100;
	cin>>n;
	for(int i =0;i<n ;i++){
		cin>>a[i];sum+=a[i];
		if(a[i]>max) max=a[i];
		if(a[i]<min) min=a[i];
	}
	cout<<max<<endl;
	cout<<min<<endl;
	avg = 1.0*sum/n;
	avg = round(avg*100)/100;//round(x)返回四舍五入整数值
	printf("%.2lf\n",avg);
	return 0;
}

代码二(简单)用了max_element()和min_element()函数

#include<bits/stdc++.h>
const int N = 1e4+10;
using namespace std;
int n,sum,a[N];
int main()
{
	cin>>n;
	for(int i = 1;i<=n ;i++) cin>>a[i],sum+=a[i];
	cout<<*max_element(a+1,a+1+n)<<"\n";
	cout<<*min_element(a+1,a+1+n)<<"\n";
	cout<<setprecision(2)<<fixed<<1.0*sum/n<<"\n";
return 0;
}
  • 知识点1.setprecision()函数的使用

  • 知识点2.max_element()和min_element()函数的使用
    max_element(first,end,cmp);cmp为可选参数
    在头文件#include中,返回的是迭代器,所以输出值的话要在前面加*
    第三个参数cmp可写可不写,max_element()和min_element()默认是从小到大排列,然后
    max_element()输出第二个值
    min_element()输出第一个值,但是如果自定义的cmp函数写的是从大到小排列,会导致结果对调。

    知识点2来自这个博主的博客
    明天继续加油学习啦,小成棒棒,欢迎大家提出宝贵建议哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小成不秃头

谢谢啦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值