鱼C论坛

 找回密码
 立即注册
查看: 1037|回复: 16

[已解决]莫名其妙的循环

[复制链接]
发表于 2022-2-9 16:28:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 岁寒青松 于 2022-2-9 16:28 编辑

  1  #include<stdio.h>
  2
  3  int main()
  4  {
  5         int i , sum = 0 ;
  6
  7         while (1)
  8         {
  9                 printf("请输入合法的数字:");
10                 scanf("%d", &i );
11                 
12                 if (i >= 0 && i <= 9)
13                 {      
14                         sum = sum + i ;
15                 }
16                 else
17                 {      
18                         printf("结果是:%d\n", sum);
19                         break;
20                 }
21         }
22         
23         return 0;
24 }


这是我写的S1E4课后作业动动手的题目1的代码,运行时一旦输入字母,就会无限输出“请输入合法的数字:”这行字,不知道是哪出的问题,求教!
最佳答案
2022-2-9 16:57:08
i的初始值是0, 符合第一个分支条件, 当你输入一个字母时, scanf没有读取到整数,会进入下一行代码,并且你输入的字母一直保存在缓冲区, 所以 i 的值一直为 0,然后一直在while里不断循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-9 16:40:07 | 显示全部楼层
我是学Python的   我看你的那个‘’请输入合法的数字‘’是不是没赋值   然后就没有用户操作的时候  所以一直打印那句话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-9 16:57:08 | 显示全部楼层    本楼为最佳答案   
i的初始值是0, 符合第一个分支条件, 当你输入一个字母时, scanf没有读取到整数,会进入下一行代码,并且你输入的字母一直保存在缓冲区, 所以 i 的值一直为 0,然后一直在while里不断循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-9 17:04:58 | 显示全部楼层
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char s[64];
    int i, sum = 0;

    while (1)
    {
        printf("请输入合法的数字:");
        scanf("%s", s);

        i = atoi(s);

        if ((i != 0 || s == "0") && (i >= 0 && i <= 9))
        {
            sum = sum + i;
        }
        else
        {
            printf("结果是:%d\n", sum);
            break;
        }
    }

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-9 18:59:56 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-9 19:36:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-9 19:36:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-9 19:37:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:28:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:28:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:54:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:54:33 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:55:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:56:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:56:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:57:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 07:58:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 14:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表