将你的test1函数更改如下:
int test1()
{
char s[20]
int num = 0,n,len,i
while(1) {
printf("请输入一个整数 : ")
gets(s)
len = strlen(s)
//for(n = 0 s[n] == '0' ++n)
num = 0 //每次输入前,要确保num=0
for(i = len-1 i >= 0 --i)
{
if((s[i] < '0') || (s[i] > '9'))
{
printf("输入错误,重新输入。\n")
break //
}
num = 10 * num + s[i] - '0' //
}
if(i < 0)
break
}
//for(n = 0 s[n] == '0' ++n)
input = num
return 0
}
不知道你指的是输入一个数字或字符还是一串下面是输入一个数字或字符的
#include
int
main()
{
char
c,c1
while(1)
{
c=getchar()
c1=getchar()
//你打一个非数字时要按回车,回车本身也是一个字符,
用c1接收回车,以免打一个字符输出两个error
if(c>='0'&&c<='9')
break
printf("error!\n")
}
}