输入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;
}
}
}
这个是可以,但是我希望的是,只把我指出来的那几句改一下,其他不要变。。
本回答被网友采纳是这个意思 不过像你这样改了还是不对。
c语言 如何做到只能输入数字,输入其他的,比如字母。就会提示重新输入...
{ printf("您输入的是%s\\n",s);break;} } }
C语言中怎么让输入的数只能为数字,不能为字母,如果是字母就重新...
1输入数值不能超过100位数值,当然可将程序中的100改为更大值 2若要输入浮点值,可将atoi 改为atof 函数
C语言,要求只能输入数字,输入其它的会提示错误,重新输入
int main (void){ int i,r;printf ("请输入一个数字: ");r=scanf ("%d", &i);if(r==0)printf("输入错误,重新输入");else printf ("%d",i);return 0;} 有不懂的问我。
C语言怎样保证输入的只是数字不能输入字母
可以使用这个语句,while( scanf("%d",&x)),如果输入是数字,则保存输入,执行下一条语句,如果不是数字,则舍弃此时输入,请求继续输入,直到输入的是数字为止
...如果输入的是小于0的数字或者是字母等,重新输入
include <stdio.h> int main() { unsigned num = 0;char ch;do { ch = (char)fgetc(stdin);if((ch >= '0') && (ch <= '9')) num = 10 * num + (ch - '0');}while(ch != '\\n');printf("num = %u\\n\\n",num);return 0;} ...
C语言怎样实现只允许输入数字,不允许输入符号、字母等
假设变量时num,则when(scanf("%d",&num)==1 && num>9)scanf("%d",&num)==1意思是输入一个数,scnaf才返回数字1,其他字符则是错的, && 在两者都成立时才成立,num>9解决了输入时两位或两位以上的的数字,当符合这些条件时,才允许往下进行。
C语言中输入数字时却输入了字母的容错问题
do { printf("请选择你需要操作的步骤(1--9):\\n");if(!scanf("%d",&n)){ printf("\\n您输入有误,请重新选择!\\n");fflush(stdin); flag = 0;} if(n>=1 && n<=9) \/*判断输入数字的合法性*\/ { flag = 1;break;} break;\/\/<---这里有个break,当然只能一次 }while(flag...
...输入大写的字母输出小写字母.输入其他要作出提示
include"stdio.h"int main(){ char letter1,letter2;scanf("%c",&letter1);if(letter1>='A'&&letter1<='Z'){ printf("%c\\n",((int)letter1+32));} else printf("It is not a letter\\n");}
...我想判断如果输入的不是英文则要求用户重新输入直到输入正确应该怎 ...
应该把提示信息修改为“请输入英文字母字符串”,并且在头上增加一句包含语句#include<ctype.h> 然后把循环判断语句修改为 while(!isalpha(m))
C语言 要求输入一个是字母,然后如果输入错误提示重新输入
include <stdio.h>#include <ctype.h>char get_ch(void){ char get_word;get_word = getchar();\/\/int flag = isalpha(get_word = getchar()); \/\/判断是否为字母?int flag = (get_word == 'a' || get_word == 's' || get_word =='m' ||get_word== 'd'||get_word ...