计算机青铜 2022-03-23 09:21 采纳率: 100%
浏览 584
已结题

从键盘输入若干学生成绩,每输入一个成绩都提示这是第几名学生,当输入负数时结束,统计并输出平均成绩,用while或for循环实现

题目

img


请问我的代码哪里错了,谢谢回答!

#include <stdio.h>
int main(){
int cj,ave,n,total=0;
for(n=1;cj>=0;n++){ 
printf("第%d名学生成绩:",n);
scanf("%d",&cj);
if(cj>=0)total=total+cj;
}
ave=total/(n-1);
printf("平均分=%d",ave);} 

img

  • 写回答

2条回答 默认 最新

  • 春休夏末 2022-03-23 09:39
    关注

    ave=total/(n-2); 这里应该是-2 因为 n=5的时候 输入了-1作为结束 有效数据只有4个 然后会执行到for循环的n++, n变成了6 比实际数据多了两个 因为平均值 可能会是小数 所以应该用float类型 把int类型修改为float类型 %d修改为%f

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月23日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度