当前位置: 代码迷 >> C语言 >> [求助]关于输入判断的问题
  详细解决方案

[求助]关于输入判断的问题

热度:134   发布时间:2007-03-12 18:03:28.0
我觉得我四楼的方案应该还是可取的,楼上还是吃了饭在想吧,
别饿坏了

----------------解决方案--------------------------------------------------------

#define LEN 20
#include"stdio.h"
main()
{
char x[LEN];
int i,sign;
do
{
i=0,sign=1;
printf("Input:");
scanf("%s",&x);
while(x[i]){if(x[i]<48||x[i]>57) {sign=0;break;}i++;}
if(sign==1) {break; printf("%s\n",x); }
}
while(1);
}



----------------解决方案--------------------------------------------------------
唉,感谢楼上,吃饭去了,怎么就没反过来想一下呢?总是想将整型转换为字符串.可能是饿了吧,下面改了一下,answer就是你想要的结果.
#define LEN 20
#include"stdio.h"
#include <stdlib.h>
main()
{
char x[LEN];
int i,sign,answer;
do
{
i=0,sign=1;
printf("Input:");
scanf("%s",&x);
while(x[i]){if(x[i]<48||x[i]>57) {sign=0;break;}i++;}
if(sign==1) {break; printf("%s\n",x); }
}
while(1);
answer=atoi(x); /*将字符串转换为整型*/
printf("%d",answer);
}
----------------解决方案--------------------------------------------------------
以下是引用neverTheSame在2007-3-12 17:03:37的发言:

do
{
scanf("%d",&x);


printf("%d",x)

}while(!(x>='0' && x<='9'))




这个我去调试了,不正确!我继续往下看


----------------解决方案--------------------------------------------------------

五个黄鹂鸣翠柳


----------------解决方案--------------------------------------------------------

谢谢12楼和13楼以及帮我出主意的所有朋友啊

12楼

13 楼

4楼的等我再去研究下!



----------------解决方案--------------------------------------------------------
int isdigit(int ch);
----------------解决方案--------------------------------------------------------

这个只能对单个字符,不用这个函数也很容易实现


----------------解决方案--------------------------------------------------------
while(1);

这个不是值永远为真(非0)的吗?这点还不能理解透,再帮点拨下,谢谢
----------------解决方案--------------------------------------------------------
里面如果执行BREAK,就可以退出循环了
----------------解决方案--------------------------------------------------------
  相关解决方案