这个作业S1E14答案是啥
本帖最后由 lsy358027330 于 2020-10-3 17:10 编辑就是那个带你学C带你飞的第14章,for语句和循环嵌套 里面那个小甲鱼没有给答案的题目,这是源代码
#include <stdio.h>
int main()
{
float num = 0;
double sum = 0;
int status;
do
{
printf("请输入合法的数字:");
do
{
sum = sum + num;
status = scanf("%f", &num);
} while (getchar() != '\n' && status == 1);
} while(status == 1);
printf("结果是:%.2lf\n", sum);
return 0;
}
是实现可以一行输入多数的相加,然后小甲鱼在内循环里进行修改,将顺序调换,答案就会不同,为什么啊,百思不得其解
……
do
{
status = scanf("%f", &num);
sum = sum + num;
} while (getchar() != '\n' && status == 1);
……
1+2相加会成5,1+2+3会相加成9 ??? 你把问题说清楚点
本帖最后由 lsy358027330 于 2020-10-3 17:06 编辑
啊,我把问题修改了一下,希望大神解答https://fishc.com.cn/forum.php?mod=viewthread&tid=68999&extra=page%3D1%26filter%3Dtypeid%26typeid%3D570就是这个里面的 zltzlt 发表于 2020-10-3 15:15
???
抱歉,修改了题目了 Jacksturdy 发表于 2020-10-3 16:36
你把问题说清楚点
抱歉,修改问题了,求大神解答 我也是新手,我是这样看的, 当 sum = sum + num;在前面时第一次执行的时候sum = 0;而当status = scanf("%f", &num);在前面的时候已经将用户输入的数字赋值到num里面了,所以第一次执行sum = sum + num;的时候sum已经有一个值了,这样就多了
Jacksturdy 发表于 2020-10-3 17:25
我也是新手,我是这样看的, 当 sum = sum + num;在前面时第一次执行的时候sum = 0;而当status = scan ...
那样应该结果会多 1 而不是最后一个数,所以我在想会不会scanf是倒着赋值的{:5_94:}
页:
[1]