黄昏已成骸242 2021-12-18 10:23 采纳率: 100%
浏览 16
已结题

有哪位能者为这个程序做一下设计解释说明

#include<stdio.h>
double aver(double a,double b){
return (a+b)/2;
}
void main(){
double a = 0,b = 0;
int flag1 = 0,flag2 = 0;
int num,i = 0;
printf("请输入班级学生人数:");
scanf("%d",&num);
for(i = i;i < num;i++){
printf("请输入第%d名学生的成绩:",i+1);
scanf("%lf%lf",&a,&b);
if(a < 0 || a > 100 || b > 100 || b < 0){
printf("请正确输入第%d名同学的成绩!!!\n",i+1);
i--;
continue;
}

    double ans = aver(a,b);
    if (ans >= 85) flag1++;
    else if(ans >= 60)flag2++;
}
printf("优秀学生人数为:%d\n及格人数为:%d\n",flag1,flag2);

}

  • 写回答

1条回答 默认 最新

  • 书山客 2021-12-18 14:29
    关注
    
    #include<stdio.h>
    double aver(double a, double b) {
        return (a + b) / 2; //求两数的平均值
    }
    void main() {
        double a = 0, b = 0;
        int flag1 = 0, flag2 = 0;
        int num, i = 0;
        printf("请输入班级学生人数:");
        scanf("%d", &num);
        for (i = i; i < num; i++) {
            printf("请输入第%d名学生的成绩:", i + 1);
            scanf("%lf%lf", &a, &b);
            if (a < 0 || a > 100 || b > 100 || b < 0) { //确保输入的成绩在0-100之间
                printf("请正确输入第%d名同学的成绩!!!\n", i + 1);
                i--;    //退回重新执行上一次的循环
                continue;
            }
    
            double ans = aver(a, b);    //求两项成绩的平均值
            if (ans >= 85) flag1++;     //平均成绩大于85的记录为优秀,用flag1记录数据,每次加1
            else if (ans >= 60)flag2++; //平均成绩小于85大于60的记录为及格,用flag2记录数据,每次加1
        }
        printf("优秀学生人数为:%d\n及格人数为:%d\n", flag1, flag2);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab