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 pri

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 13:36:47
c语言中的回文序列的判断#include#defineN50intmain(){intn,a,b,c;a=0;c=0;b=0;intg[N];printf("请输入一个数字");scanf("%d",

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 pri
c语言中的回文序列的判断
#include
#define N 50
int 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语言中的回文序列的判断#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 pri
我也是初学者,不过看了看你的程序,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]);
}