求贪吃蛇c语言代码_求这个C语言代码怎么写
试题描述 输入某班学生某门课的成绩(最多不超过40人,具体人数由用户键盘输入),用函数编程统计不及格人数。输入 输入包含两行: 第一行是一个整数n,表示班级人数。 第二行是n个整数,表示n个学生的成绩,相邻两项之间用一个空格隔开。输出 输出不及格人数。
最佳答案
根据题主的要求,我稍微加入了一点人机交互的环节。截图如下:

如图可知,第1次输入超过了人数上限,所以给予报错显示。之后则正常输入学生成绩并予以统计。程序本身不复杂,我也加入了部分注释。具体代码如下:
#include <stdio.h>
// 最大学生数
#define MAX_STU (40)
// 及格线
#define DEAD_LINE (60)
// 声明统计不及格人数的函数
int failed_num(float[], int);
int main(void) {
int i; // 计数器
int num_of_stu; // 实际的学生数量
int loop_flag = 1; // 循环条件
float scores[MAX_STU]; // 存储学生成绩
do {
// 获得实际的学生数量
printf("Please input the number of students: ");
scanf("%d", &num_of_stu);
getchar(); // 接收stdin的Enter符号
// 判断录入的数量是否超过上限
if (num_of_stu <= MAX_STU) {
loop_flag = 0; // 终止循环
// 录入每名学生的成绩
for (i=0; i<num_of_stu; i++) {
printf("#%d Student's score: ", i+1);
scanf("%f", &scores[i]);
getchar(); // 接收stdin的Enter符号
}
} else {
// 打印错误信息
printf("\tError: more than upper bound(%d).\n\n", MAX_STU);
}
} while (loop_flag);
// 统计不及格人数
int num = failed_num(scores, num_of_stu);
printf("\nThe number of failed is %d.\n", num);
return 0;
}
int failed_num(float scores[], int num_of_stu) {
int num = 0;
int i;
for (i=0; i<num_of_stu; i++) {
if (scores[i] < DEAD_LINE)
++num;
}
return num;
}
其他回答
暂无其它回答!