别饿坏了
----------------解决方案--------------------------------------------------------
#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,就可以退出循环了
----------------解决方案--------------------------------------------------------