永发信息网

C语言里如何建立一个循环,当输入数字在0~9之间的时候继续输入,当输入不在0~9之间的时候结束?

答案:3  悬赏:50  手机版
解决时间 2021-04-03 01:51
  • 提问者网友:愿为果
  • 2021-04-02 13:01
C语言里如何建立一个循环,当输入数字在0~9之间的时候继续输入,当输入不在0~9之间的时候结束?
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-04-02 13:53
scanf("%d",&x);
while ((x<=9)&&(x>=0)) scanf("%d",&x);追问用{scanf,printf(" ")}可是当输入为a时会出现无限循环输出_(为空格)追答输入为a是什么意思?不太明白追问字符a小写键盘里字母a追答不是输入数字吗追问不只是输入数字,还可以输入其他的字符!!追答那就改成字符输入好了
ch=getchar();
while ((ch>='0')&&(ch<='9')) ch=getchar();追问这个我刚试完,只能循环一次,我也不知道为什么!!追答有个问题,你输入的时候不能输入回车追问好的,我试试追答那就改成回车输入,加一行回车输入的语句
#include
int main()
{
char ch;
ch=getchar();
while ((ch>='0')&&(ch<='9')) {scanf("%c",'\n');ch=getchar();}
}追问程序有问题!!追答我运行没有问题,怎么回事追问即使能运行,输入11时会运行两次!!追答运行两次是什么意思,这个程序每次输入只能输入一个字符,并且要回车追问就是输入11再按回车,程序会运行两次!追答每次只能输入一个字符+回车追问好吧,可能操作软件不一样,我的运行时程序错误!追答你截个图给我看看追问

追答#include
int main()
{char ch;
ch=getchar();
while ((ch>='0')&&(ch<='9')) {getchar();ch=getchar();}
}
改一下试试追问在循环体getchar和ch=getchar之间加一句输出语句,当输入为11时会输出一句后再结束!!追答没懂你是什么意思追问
追答你不是printf("aa\n");吗追问嗯,我是想输入0~9时输出aa,可是现在输入11时会输出aa再结束结束,主要是不想输入11时输出,直接结束#include "stdio.h"
int fun(char p[])
{
if(p[0]>='0'&&p[0]<='9'&&p[1]=='\0')
return 1;
else return 0;
}
void main()
{
char s[2];
gets(s);
while(fun(s)==1)
{
printf("aa\n");
gets(s);
}
}
全部回答
  • 1楼网友:由着我着迷
  • 2021-04-02 15:54
#include 
int main(void)
{
    int c=0;
    while(c<10&&c>=0)scanf("%d",&c);
    return 0;
}追问用{},在循环语句里加一句输出空格,再输入1,再输入a时会出现无限循环追答#include 
int main(void)
{
    char c=‘0’;
    while(c<='9'&&c>='0')
    {
        scanf("%d",&c);//此为循环体。
    }
    return 0;
}追问亲,你这个循环只能执行一次!!追答
是么#include 
int main(void)
{
    char c=‘0’;
:r  scanf("%d",&c);
    if(c>'9'||c<'0')goto e;
    //................
    //此为循环体。
    goto r;
:e
    return 0;
}追问第五行开头:r是什么意思?#include "stdio.h"
int fun(char p[])
{
if(p[0]>='0'&&p[0]<='9'&&p[1]=='\0')
return 1;
else return 0;
}
void main()
{
char s[2];
gets(s);
while(fun(s)==1)
{
printf("aa\n");
gets(s);
}
}
  • 2楼网友:野味小生
  • 2021-04-02 14:58
用自符串: 先定义一个字符串,如:char hanzi[20]; 然后: scanf("%s",hanzi); 或者gets(hanzi); 不过定义的时候控制了字节为20,不能输太多,(一个汉字两 个字节)追问亲,是输入数字后可以执行一个语句!你这样只能输入,不能循环#include "stdio.h"
int fun(char p[])
{
if(p[0]>='0'&&p[0]<='9'&&p[1]=='\0')
return 1;
else return 0;
}
void main()
{
char s[2];
gets(s);
while(fun(s)==1)
{
printf("aa\n");
gets(s);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯