lntouchables 发表于 2017-6-3 23:00:49

求解,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
                {
                        sum = sum + num;
                        status = scanf("%f", &num);
                } while (getchar() != '\n' && status == 1);
……
这一段代码中的
sum = sum + num;
status = scanf("%f", &num);
调换下位置变成
   status = scanf("%f", &num);
sum = sum + num;
然后最后程序运行结果就不一样了,这是为什么,想不通{:10_266:} 求教学{:10_284:}

q981718011 发表于 2017-6-21 15:38:45

自己编译一下就知道了,status = scanf("%f", &num); sum = sum + num;时在输入数据后多加了一次
页: [1]
查看完整版本: 求解,C语言第14课for语句这一节