编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。

2024-11-16 18:30:44
推荐回答(2个)
回答1:

#include"stdio.h"
void main(void)
{
unsigned char l = 0, i, j, temp1[200];
printf("\n\n\n Please Input wenzi chuan: ");
scanf("%s", temp1); //输入到TEMP1
while(temp1[l] != '\0') l++; //测出字符串长度.
j = l / 2; //半个字串长度
for (i = 0; i <= j; i++) {
if (temp1[i] != temp1[l - 1 - i]) break;
}
if (i == (j + 1)) printf("y");
else printf("n");
}
//------------------------
//上述程序,编译后运行,最多可以输入200个字符,回车键结束,程序会自动输出 y、n。

//用指针来做

#include"stdio.h"
void main(void)
{
unsigned char l = 0, i, j, temp1[200], *pt;
pt = temp1;
printf("\n\n\n Please Input wenzi chuan: ");
scanf("%s", pt); //输入到TEMP1
while(*pt != '\0') {l++; pt++;} //测出字符串长度.
j = l / 2; //半个字串长度
pt = temp1; //从头开始查找
for (i = 0; i <= j; i++) {
if (*(pt + i) != *(pt + l - 1 - i)) break;
}
if (i == (j + 1)) printf("yes\n");
else printf("no\n");
}
//------------------------
//上述程序,编译后运行,最多可以输入200个字符,回车键结束,程序会自动输出 y、n。

回答2:

#include "stdio.h"
main( )
{
long ge,shi,qian,wan,x;
scanf("%ld",&x);
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf("this number is a huiwen\n");
else
printf("this number is not a huiwen\n");
}