蓝桥杯-成绩统计(c语言)

题目描述

小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。

请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。

输入描述

输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤104),表示考试人数。

接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。

输出描述

输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。

输入

7

80

92

56

74

88

100

0

输出

71%

43%

增加知识:

1.c语言编译器可以自行四舍五入

使用  %.nlf  就可以了

2.如果非要四舍五入可以

(int)a+0.5;

记住转换之原来变量类型不变,只是数值变成需要的类型而已。

3.如何让c语言编译器不进行四舍五入

double a=28.999;

a=(double)(int)a*100/100;(此处100即表示保留两位小数)

原理是:a保存所需的小数然后用int把不需要的去掉再/100变成原来的数。

​
#define _CRT_SECURE_NO_WARNINGS	

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
	//用float好处是保留小数
	float k = 0;//及格人数 
	float p = 0;//优秀人数 
	int n = 0;
	int i = 0;
	int a[30];
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	for (i = 0; i < n; i++)
	{
		if (a[i] >= 60)
		{
			k++;
		}
		if (a[i] >= 85)
		{
			p++;
		}
	}
	k = k * 100 / n;//不需要float强制类型转换也可以;
	p = p * 100 / n ;
	//printf("%lf%%\n%lf%%\n", k, p);
	printf("%.0lf%%\n%.0lf%%\n", k, p);//%.nlf这个可以自动四舍五入。
	//k = (int)(k+0.5) ;//四舍五入,将小数点去除;
	//p = (int)(p + 0.5);//
	//printf("%.0lf%%\n%.0lf%%\n", k, p);
	return 0;
}

​

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值