蓝桥杯 C语言 成绩统计
题目
题目要求
1.每个学生的得分都是一个 0 到 100 的整数,使用int。
2.如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
3.请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数。
思路分析
1.输入成绩可以用数组,但是数组必须足够大,在10000左右。
2.采用for循环输入成绩。
3.采用for循环对数组成绩一一进行判断。
4.及格包含了及格+优秀,而优秀不包含及格,解决此问题有两种方法,一种是if与else if搭配使用,后面if为及格+优秀人数,二是if嵌套判断范围由大到小。
5.及格率与优秀率使用float声明,因为成绩为int型声明,所以需要将int型声明转换为float。
6.成绩四舍五入,故成绩取%0f。
代码
#include<stdio.h> int main() { int chengji[10000]={0},j,a; int jige=0,youxiu=0; float jigelv,youxiulv;//jige=及格人数,优秀=优秀人数 printf("请先输入考试人数,再输入考试成绩:"); scanf("%d",&a);//输入考试人数 for(j=0;j<a;j++) { scanf("%d",&chengji[j]); if(chengji[j]>=60) jige++; if(chengji[j]>=85) youxiu++; } jigelv=jige*100.0/a; youxiulv=youxiu*100.0/a;//将int型转换为float printf("%.0f%%\n%0.f%%",jigelv,youxiulv); return 0; }
运行结果