为什么用return0输出不了最后一行的printf内容,


#include
int main()
int don, i;
float adv, sum = 0;
for (i= 1;i<1000;i++)
{
printf(“学生捐款数:“);
scanf_s("%d”, &don);
sum += don;
if (sum > 10000)
return 0;
}
ady =sum/ i;
printf(“第%d位同学捐款达到一万元\n平均每人捐款:%f”,i,adv);


望采纳,点击右侧采纳即可:
因为在满足sum > 10000时,程序已经在return 0语句处退出了main函数,最后一行printf语句不会被执行。
这样改,把最后一行printf语句放在return 0语句之前,使得它在退出main函数前被执行:

#include<stdio.h>
int main()
int don, i;
float adv, sum = 0;
for (i= 1;i<1000;i++)
{
printf(“学生捐款数:“);
scanf_s("%d”, &don);
sum += don;
if (sum > 10000)
break;
}
ady =sum/ i;
printf(“第%d位同学捐款达到一万元\n平均每人捐款:%f”,i,adv);
return 0;
}


在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。
供参考:https://baike.baidu.com/item/return/16284?fr=aladdin

return 0 改为 break 即可, 其他无需修改

因为return结束的是函数不是循环,改为break

1、首先应该知道return 0的作用,当使用return时,在return后面的代码不会被执行,因为return已经返回了,所以在达到if的条件时,不会输出,应该把输出放在return 前面即可