输入成绩,并计算全班平均分及成绩大于平均分的人数

#include <stdio.h>
main()
{
    double grade[200];
    double sum,avg,temp;
    int count,i,n;
    i=0;
    count=0;
    sum=0;
    printf("请依次输入每个同学的成绩,输入-1结束\n");
    scanf("%lf",&temp);
    while(temp!=-1)
        {
            grade[i++]=temp;
    count++;
    sum=sum+temp;
    scanf("%lf",&temp);
    }
    avg=sum/count;
    n=0;
    for(i=0;i<count;i++)
        {
            if(grade[i]>=avg)
            n++;
    }
    printf("全班平均分%.2lf,成绩大于等于平均分的人有%d人\n",avg,n);

}

运行结果:
这里写图片描述

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,这是一个很常见的编程问题,以下是 Python 代码实现: ```python scores = [] while True: score = input("请输入考试成绩:") if score == "-1": break score = int(score) if score < 0 or score > 100: print("输入不合法,请重新输入!") continue scores.append(score) if len(scores) == 0: print("没有输入成绩!") else: max_score = max(scores) min_score = min(scores) avg_score = sum(scores) / len(scores) print("最高分:", max_score) print("最低分:", min_score) print("平均分:", avg_score) ``` 希望这个代码能够帮到你! ### 回答2: 可以使用循环结构来实现这个功能。首先初始化最高分和最低分为0。然后定义一个变量total_score来累计所有同学的成绩之和,再定义一个变量count来计算输入的同学人数。 接着进入循环,每次循环开始时先要求输入一个成绩,然后进行判断。如果输入成绩是-1,则跳出循环;如果成绩不在0到100的范围内,则提示错误并要求重新输入;否则,进行下一步操作。 在这个判断的else分支中,首先将输入成绩累加到total_score上,然后将count加1。然后判断输入成绩是否大于最高分,如果是,则将最高分更新为输入成绩;然后判断输入成绩是否小于最低分,如果是,则将最低分更新为输入成绩。 循环结束后,计算平均分,可以通过total_score除以count来得到。 最后,输出最高分、最低分和平均分即可。 以下是代码示例: ``` max_score = 0 min_score = 0 total_score = 0 count = 0 while True: score = int(input("请输入成绩输入-1结束):")) if score == -1: break elif score < 0 or score > 100: print("输入错误,请重新输入!") continue total_score += score count += 1 if score > max_score: max_score = score if score < min_score or min_score == 0: min_score = score average_score = total_score / count print("最高分:", max_score) print("最低分:", min_score) print("平均分:", average_score) ``` 使用这段代码,可以依次输入每个同学的成绩输入-1时即可结束输入,然后程序会计算并输出全班的最高分、最低分和平均分。 ### 回答3: 这个问题可以通过使用循环来解决。我们可以使用一个while循环来接收学生的输入,直到遇到结束标志为止(-1)。 首先,我们可以定义初始的最高分和最低分为0,平均分为0,并且计数器为0,用于统计人数。 接下来,我们可以使用一个无限循环来接收学生的分数输入。在循环内部,首先让用户输入一个分数。如果输入的分数大于100或小于0,则要求用户重新输入,直到输入合法的分数为止。然后,我们可以判断这个分数是否为结束标志(-1),如果是的话,退出循环。 如果输入的分数不是结束标志,那么我们可以判断该分数是否为最高分或最低分。如果是,我们可以更新最高分或最低分的值。并且,我们可以将该分数累加到平均分的总和中,并且计数器加1。 随着循环的进行,最后我们可以计算出最高分、最低分和平均分。最高分为之前保存的最高分的值,最低分为之前保存的最低分的值,平均分为总和除以计数器的值。 最后,我们可以输出这些结果,得到全班的最高分、最低分和平均分。 代码示例: ``` max_score = 0 min_score = 0 avg_score = 0 count = 0 while True: score = int(input("请输入一个学生的分数:")) while score > 100 or score < 0: score = int(input("输入的分数无效,请重新输入:")) if score == -1: break if score > max_score: max_score = score if score < min_score or min_score == 0: min_score = score avg_score += score count += 1 avg_score /= count print("全班的最高分是:%d" % max_score) print("全班的最低分是:%d" % min_score) print("全班平均分是:%.2f" % avg_score) ``` 这样,就可以根据输入成绩计算全班的最高分、最低分和平均分了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值