晨曦之星 发表于 2020-4-23 11:51:16

关于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;
}
当我输入1a2a3a4a5后,他会再次循环到第一个请输入合法数字,然后我再输入个a就会从循环里出来,接着下面会打印结果
javascript:;
我搞不懂为什么12345会相加。



sunrise085 发表于 2020-4-23 12:03:54

本帖最后由 sunrise085 于 2020-4-23 12:13 编辑

看看这个帖子,也是你的 这个程序,我在里面写了一下scanf'的用法

还有这个帖子,有一些我对scanf用法的一些解释

魂梦 发表于 2020-4-23 12:10:29

在进行内循环时,你的scanf给num赋值了呀

晨曦之星 发表于 2020-4-23 12:15:52

sunrise085 发表于 2020-4-23 12:03
看看这个帖子,也是你的 这个程序,我在里面写了一下scanf'的用法

还有这个帖子,有一些我对scanf用法的 ...

确实是scanf的用法有不懂,感谢

晨曦之星 发表于 2020-4-23 12:16:32

魂梦 发表于 2020-4-23 12:10
在进行内循环时,你的scanf给num赋值了呀

谢谢谢谢,问题解决了
页: [1]
查看完整版本: 关于for语句的课后作业