[求助]你见过吗、你会吗?
回文是指顺读和倒读都一样的数字和文字语句。例如,下列5位整数都是回文:12321,55555,45554,116611。编写一个C程序读入一个5位整数,并判断该整数是否是回文。请高手帮帮忙
----------------解决方案--------------------------------------------------------
可以用数组,
----------------解决方案--------------------------------------------------------
先转成字符串,方法很多,像楼上一样,用数组也行,用队列和栈的结合也可以
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define N 80
int main()
{
char a[N];
int i,j;
do{
gets(a);
for(i=0;a[i]!=0;i++);
j=i;
if(j==5)
{ j=0;
if(a[0]==a[4])
j++;
if(a[1]==a[3])
j++;
if(j==2)
printf("是回文数\n");}
else
printf("重新输入\n");
}while(j!=2);
return;
}
----------------解决方案--------------------------------------------------------
以下是引用C语言学习者在2006-10-20 22:30:19的发言:
#include<stdio.h>
#define N 80
int main()
{
char a[N];
int i,j;
do{
gets(a);
for(i=0;a[i]!=0;i++);
j=i;
if(j==5)
{ j=0;
if(a[0]==a[4])
j++;
if(a[1]==a[3])
j++;
if(j==2)
printf("是回文数\n");}
else
printf("重新输入\n");
}while(j!=2);
return;
}
#include<stdio.h>
#define N 80
int main()
{
char a[N];
int i,j;
do{
gets(a);
for(i=0;a[i]!=0;i++);
j=i;
if(j==5)
{ j=0;
if(a[0]==a[4])
j++;
if(a[1]==a[3])
j++;
if(j==2)
printf("是回文数\n");}
else
printf("重新输入\n");
}while(j!=2);
return;
}
用字符串做就不要这么麻烦了.
----------------解决方案--------------------------------------------------------
char str[N];
gets(str);
for(i=0;j=N-2;i<j;i++,j--)
{
if(a[i]!=a[j])
{
break;
}
}
if(i<j)
{ printf("No\n");
}
else
{
printf("Yes\n");
}
----------------解决方案--------------------------------------------------------
差不多
----------------解决方案--------------------------------------------------------
这个较简单
#include<stdio.h>
int main()
{
char a[80];
gets(a);
if(a[0]==a[4]&&a[1]==a[3])
{ printf("是回文数\n");}
else
printf("不是回文数,重新输入\n");
return 0;
}
----------------解决方案--------------------------------------------------------
用堆栈,很简单
----------------解决方案--------------------------------------------------------
那么要求使用除法运算符和求模运算符把该数分解成单个位数来做,该怎么编写
----------------解决方案--------------------------------------------------------