大佬们 这题是为啥
本帖最后由 wy丶12 于 2020-7-2 21:31 编辑在14课 课后作业里的这题 :
……
do
{
sum = sum + num;
status = scanf("%f", &num);
} while (getchar() != '\n' && status == 1);
……
……
do
{
status = scanf("%f", &num);
sum = sum + num;
} while (getchar() != '\n' && status == 1);
……
为啥计算顺序变了之后得到的结果就不一样了 ,一直都没想明白 先接水后倒水和先倒水后接水,结果一样么? 第一种写法是对的。每次加的都是上次循环所输入的num值,若没有正确的输入,status为0,则退出循环。这种写法,num需要赋初值为0
第二种写法是有问题的,每次加的是本次循环所输入的num值,然后若没有正确输入,status为0,而num还是上次循环的值,会被再加一遍,那就加错了。 永恒的蓝色梦想 发表于 2020-7-2 21:31
先接水后倒水和先倒水后接水,结果一样么?
嗯 谢谢大佬 {:10_323:} sunrise085 发表于 2020-7-2 21:48
第一种写法是对的。每次加的都是上次循环所输入的num值,若没有正确的输入,status为0,则退出循环。这种写 ...
嗯 谢谢大佬 {:10_323:}
页:
[1]