解题思路:

最关键的地方是如何将double类型的数据四舍五入的输出,本代码采用cmath中round函数的方式

注意事项:

round函数可以对浮点型数据进行四舍五入处理,极其方便

默认保留0位小数,即只输出整数,即  cout<<round(23.3)<<endl;  //则会输出23

如果想要保留一位小数,则可以对数据进行先*10再/10的操作

例如:cout<<round(1.25*10)/10<<endl; 可以输出1.3;

参考代码:

#include #include   //四舍五入函数round的头文件 
using namespace std;
//主要是输出的格式 
int main(){
	int score;
	int n;
	cin>>n;
	int jige=0;
	int youxiu=0; 
	for(int i=1;i>score;
		if(score>=60){
			//及格人数加一
			jige++; 
		}
		if(score>=85){
			youxiu++;
		}
	}
	//开始输出--采用输出保留0位小数的方式
	double rate1 = 1.0*jige/n * 100; 
	double rate2 = 1.0*youxiu/n * 100;
	cout<<round(rate1)<<"%"<<endl<<round(rate2)<<"%"<<endl;    //可以被补充1的方式来代替这一行
	return 0;
}

补充:

1.可以采用setprecision(n)的方式来解决该问题

setprecison可以设置输出位的有效数字个数_以四舍五入的方式,在本题中将将参数设置为2,如下:

cout<<setprecision(2)<<rate1<<"%"<<endl<<rate2<<"%"<<endl;   //设原数据为33.3,那么保留两位有效数字为33

2.可以采用+0.5的方式进行控制

首先我们要知道 double类型的数据转int数据时,会丢失小数部分,例如15.6或15.4转化为int类型时会变为15;

那么我们可以采用将原数据+0.5的方式,来间接的实现四舍五入的效果,例如源数据33.4+0.5=33.9,转化为 int 时会变为33,

而33.6+0.5=34.1,转化为int类型的数据时,会变为34,效果达成

但是需要注意的是,在这种条件下,我们要将rate1与rate2设置为int类型,然后直接输出即可;

而在以上两种方式下,rate1与rate2必须是double类型,不然会丢失小数部分,控制其输出格式会变得无意义;

点赞(0)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论