编写函数fun(char *p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都

编写函数fun(char *p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数) #include<stdio.h> char p[]; void fun(char p[]) { int i,length; for(i=0;p[i]!='\0';i++); length=i; for(i=0;i<length/2;i++) { if(p[i]!=p[length-i-1]) { printf("no\n");break; } } if(i>=length/2) printf("yes\n");} void main() { scanf("%s\n",p); fun(p[]); } 老是有那个错误=_=小白求救。别改得太复杂了。。。

第1个回答  2014-07-04
调试了一下,改作如下代码,供参考:
#include<stdio.h>
char p[200]={0}; //数组必须定义明确或用初始化来定义长度
void fun(char *p)
{
int i,length;
for(i=0;p[i]!='\0';i++);
length=i;
for(i=0;i<length/2;i++)
{
if(p[i]!=p[length-i-1])
{
printf("no\n");
break;
}
}
if(i>=length/2)
printf("yes\n");
}
void main()
{
scanf("%s",p); //“\n”不能放双引号里,调试跑飞。
fun(p);
}
VC6下编译通过,并正常执行。
相似回答