输入1234,结果它出来4321.。。 谁能帮改下。我有标出来大概哪里错了。
#include <stdio.h>
#include <string.h>
int input;
int main()
{int test1();
test1();
printf("您输入的是%d\n",input);
}
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);
for(i = len - 1; i >= n; --i) { //应该是这里有问题
if((s[i] < '0') || (s[i] > '9')) break; //
num = 10 * num + s[i] - '0'; //
}
if(i > n) printf("输入错误,重新输入。\n");
else break;
}
for(n = 0; s[n] == '0'; ++n);
input = num ;
return 0;
}
将你的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 <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<cctype> //here
int main()
{
while(true)
{
char s[20];
int num = 0,n,len,i;
i=0;
printf("请输入一个整数 : ");
gets(s);
len = strlen(s);
for(i=0;i<len;i++)
{
if (!isdigit(s[i]))
break;
}
if(i==len)
{
printf("您输入的是%s\n",s);
break;
}
}
}
这个是可以,但是我希望的是,只把我指出来的那几句改一下,其他不要变。。
本回答被网友采纳你是不是想说这个意思啊追问
是这个意思 不过像你这样改了还是不对。