小白求助
看不懂{:5_111:}……
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);
…… 喵喵喵 我很好奇上面的代码 是怎么产生下面的结果的 最终的执念 发表于 2021-11-16 21:41
我很好奇上面的代码 是怎么产生下面的结果的
#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;
} 第一次num和sum都没值 所以....
而且getchar() != '\n'这条件你确定成立.... 最终的执念 发表于 2021-11-16 22:02
喵喵喵
懂了,修改前:输入1那次循环并没有赋值给sum,等第二次循环时才把1赋值给sum。
修改后:第一次循环就给sum赋值了,还把最后的数相加了两次
status = scanf("%f", &num);
可以说一下这个会让status等1吗?{:5_111:}
啊这不完全成立
页:
[1]