问答题 请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串123312就不是回文。
请勿改动主函数main和其它函数巾的任何内容,仅在函数fun的花括号巾填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
#define N 80
intfun(char*str)
{
}
main()
{char s[N];
printf("Enter a string:");gets(s);
printf("/n/n");puts(s);
if(fun(s))printf("YES/n");
else printf("NO/n");
}
【正确答案】
【答案解析】int fun(char *str)
{
int i,n=0,fg=1;
char *p=str;
while (*p)
{
n++;
p++;
}
for(i=0;i<n/2;i++)
if(str[i]==str[n-1-i]);
else
{
fg=0;
break;
}
return fg;
} [解析] 判断回文就是将第一个字符与最后一个字符比较,第二个字符与倒数第二个字符进行比较,依此类推,直到中间的字符,如果比较的结果都相同,那么这个字符串就是回文,否则不是。程序中循环语句用来遍历字符串,条件语句用来判断当前字符与对应位置的字符是否相同。