您的位置首页生活百科

c语言中的回文序列的判断

c语言中的回文序列的判断

的有关信息介绍如下:

问题补充说明:#include #define N 50int main(){ int n,a,b,c; a=0;c=0;b=0; int g[N]; printf("请输入一个数字"); scanf("%d",&n); while (n>0) { g[a++]=n%10; n=n/10; }while (g[b]==g[a-b]&&(a-b)>=0){ c++; b++; } if(c==a) printf("true"); else printf("flase"); getch ();}请高手帮忙看看这个错到哪里了?为什么输出的都是FLASE

c语言中的回文序列的判断

我也是初学者,不过看了看你的程序,g[a++],由于数组下始室八处标是从0开始的,而a+坏绍怀+是先用值后自加1,故而数组中是不存在g[a]的,这样,你在下面语句中

g[b]==g[a-b]就不成立了,因为b=0时,就成了g[0]==g[a];的情况,因此,显示flase,你将g[b]==g[a-b]改为g[b]==g[a-b-1],应该就可以了。

另,程序中还有一个繁冗,g[b]==g[a-b-1客守画酸张矿留余],有一半的程序是多余的,你可以改改。

另,南院人士的说法不对,g[a++]就是先取g[铁端粒论罪向院数0]后a自加1,你再令顺冷加条语句测一下就好了while(n>0)

{

g[a++]=n%10;

n=n/10;

printf("%d",g[a]);

}