为什么修改代码上下顺序,运行输出结果不一致
#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;
} #include <stdio.h>
int main(void)
{
double num = 0 , sum = 0 ;
int status ;
while(1) {
printf("请输入合法的数字:");
status = scanf("%lf" , & num) ;
if(status == 1) sum += num ;
else break ;
}
printf("%.2lf\n" , sum) ;
}
这个代码和 getchar() 一毛钱关系也没有,干嘛要招惹它??? 我也觉得都是15{:10_266:},求解{:10_258:} 本帖最后由 jhq999 于 2021-12-18 12:16 编辑
第一个sum+=num;sum=0+0;sum=1+0;sum=1+2;.....sum=10+5;
第二个sum=1+0;sum=1+2;.....sum=10+5;sum=15+5;//当你输入不是数字,scanf("%lf",&num);不改变num的值,所以sum=15+5;
页:
[1]