编程判断输入的一串字符是否为回文。所谓回文是指顺读和倒读都一样的字符串(我不知道哪里错了~~

/* */
#include "stdio.h"
#include"string.h"
void main()
{
int i,j;
char a[80],b[80],*str1,*str2;
i=0;
while((a[i]=getchar())!='\n')
i++;

a[i]='\0';
j=0;
for(;i>=0;i++){
b[j]=a[i];
j++;
}
b[j]='\0';
str1=a;
str2=b;

if(strcmp(str1,str2)==0){
printf("YES");
}
else
printf("NO");
}

第1个回答  推荐于2016-01-21
#include "stdio.h"
#include"string.h"
int main()
{
int i,j;
char a[80],b[80],*str1,*str2;
i=0;
while((a[i]=getchar())!='\n')
i++;

a[i]='\0';
i--; // i要先-1,跳过NULL
j=0;
for(;i>=0;i--){ // i--
b[j]=a[i];
j++;
}
b[j]='\0';
str1=a;
str2=b;

if(strcmp(str1,str2)==0){
printf("YES");
}
else
printf("NO");
}本回答被提问者采纳
第2个回答  2011-05-12
#include "stdio.h"
#include"string.h"
void main()
{
int i,j;
char a[80],b[80],*str1,*str2;
i=0;
while((a[i]=getchar())!='\n')
i++;

a[i]='\0';
j=0;

for(i=i-1;i>=0;i--) //这儿有错!这儿有错!这儿有错!
{
b[j]=a[i];
j++;
}
b[j]='\0';

str1=a;
str2=b;

if(strcmp(str1,str2)==0){
printf("YES");
}
else
printf("NO");
}
第3个回答  2011-05-12
要分情况
该数位数为奇数和偶数要区分开
相似回答