编程题 编写函数fun,它的功能是:判断字符串是否为回文,若是,则函数返回1,主函数输出 YES,否则返回0,主函数中输出 NO。回文是指顺读和倒读都一样的字符串,
例如,字符串LEVEL是回文,而字符串123312就不是回文。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#define N 80
int fun(char *str)
{
}
main()
{
char s[N] ;
FILE *out;
char *test[] = {"1234321", "123421", "123321", "abcdCBA"};
int i;
printf("Enter a string: ") ;
gets(s) ;
printf("\n\n") ;
puts(s) ;
if(fun(s))
printf(" YES\n") ;
else
printf(" NO\n") ;
out=fopen("out.dat", "w");
for (i = 0; i < 4; i++)
if (fun(test[i]))
fprintf(out, "YES\n");
else
fprintf(out, "NO\n");
fclose(out);
}
答案是: 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;
}