当前位置: 代码迷 >> C语言 >> 求助个问题,谢谢各位
  详细解决方案

求助个问题,谢谢各位

热度:212   发布时间:2008-04-08 00:15:45.0
求助个问题,谢谢各位
以下是个论证数字回文的程序,为什么当我出入字母时,他就会一直出现"please input a number:"
#include<stdio.h>
void main()
{long int a,a1,a2,a3,a4,rent;
do
{printf("\nplease input a number:");
  scanf("%ld",&a);
}while(a<10000||a>99999);
a1=a/10000;
rent=a%10000;
a2=rent/1000;
rent=a%100;
a3=rent/10;
a4=a%10;
if((a1==a4)&&(a2==a3))
    printf("\nthe number is huiwen");
else
    printf("\nthe number is not huiwen");
}



希望高手的帮助,谢谢

[[it] 本帖最后由 zhouweiyong55 于 2008-4-8 00:17 编辑 [/it]]
搜索更多相关的解决方案: include  please  number  字母  

----------------解决方案--------------------------------------------------------
键盘缓存问题(应该是这么叫的),以前我也有这样的问题与困惑,后来在大家的帮助下,解决了此问题:
char c;
whilde(c=getchar!='\n'&&c!=EOF);
你在scanf输入语句的后面加上while这行――不过前面得先定义变量c。

你试试,应该可以的。
----------------解决方案--------------------------------------------------------
这个论坛回复的速度也太快了,真是谢谢广陵兄,我再试试
----------------解决方案--------------------------------------------------------
但是如果象上面那样改就不能判断a的范围了啊,不知道有没有更好的解决方法吗,还有问下EOF是什么意思?
谢谢各位!
----------------解决方案--------------------------------------------------------
这样就可以了!
#include<stdio.h>
void main()
{long int a,a1,a2,a3,a4,rent;
do
{printf("\nplease input a number:");
  scanf("%ld",&a);
  while(getchar()!='\n')
   continue;
}while(a<10000||a>99999);
a1=a/10000;
rent=a%10000;
a2=rent/1000;
rent=a%100;
a3=rent/10;
a4=a%10;
if((a1==a4)&&(a2==a3))
    printf("\nthe number is huiwen");
else
    printf("\nthe number is not huiwen");
}
----------------解决方案--------------------------------------------------------
谢谢上面的兄弟
----------------解决方案--------------------------------------------------------
回复 5# 的帖子
学习了,
----------------解决方案--------------------------------------------------------
请LZ学习一下数组


----------------解决方案--------------------------------------------------------
为什么要学数组啊```
----------------解决方案--------------------------------------------------------
长见识了,原来这叫回文,呵呵~~~

把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。

回环运用得当,可以表现两种事物或现象相互依靠或排斥的关系。

例子(1):信言不美,美言不信。 《道德经八十一》

例子(2):日往则月来,月往则日来。 《易经.系辞》

例子(3):非人磨墨墨磨人。

例子(4):自我突破,突破自我。

例子(5):你需要警队,警队需要你。

帮你改了一下,字符也可以.

#include<stdio.h>
#define MAX 64
int main(void)
{
    int i = 0,len;
    char str[MAX];
    do
    {
         printf("\nplease input a string:");
         gets(str);
        // fflush(stdin);或while(getchar()!='\n')continue;都不用了
        len = strlen(str);
    }while(len < 3 || len > MAX);
    if (str[i] == str[len-i-1])
       {
          for (i = 0; i <= len/2; i++)
              if (str[i] != str[len-i-1])
              {
                    printf("\nthe number is not huiwen");
                    break;
              }
          if (i > len/2)
              printf("\nthe number is huiwen");
       }
     else
     printf("\nthe number is not huiwen");
     getch();
     return 0;
}

[[it] 本帖最后由 meteor57 于 2008-4-8 12:54 编辑 [/it]]
----------------解决方案--------------------------------------------------------
  相关解决方案