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

从键盘输入若干学生成绩,每输入一个成绩都提示这是第几名学生,当输入负数时结束,统计并输出平均成绩,用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日

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R