折耳布偶 发表于 2022-7-30 15:58:35

关于循环嵌套课后作业的问题

在课后作业S1E14 动动手2 问题: 写一个程序,对用户输入的数进行求和 A. 用户可以输入整数和浮点数 B. 用户可以在同一行输入多个数字,数字之间可以是任意一个分隔符 C. 结果保留两位小数
答案代码为
#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;
}
在此我的问题是此程序循环嵌套运行的步骤是怎样的不是应该先内循环再外循环吗? 为什么会先打印“请输入合法数字”为什么输入小数点这个字符的时候不算结束上一个计数而可以记小数点后的数字,比如5.5为什么不是记录了5然后记录一个分隔字符再记录了5 而是直接记录了5.5

jhq999 发表于 2022-7-30 16:16:46

为什么会先打印“请输入合法数字”
因为它在内循环前面
为什么输入小数点这个字符的时候不算结束上一个计数而可以记小数点后的数字
因为scanf接收的格式是%f
页: [1]
查看完整版本: 关于循环嵌套课后作业的问题