写一函数,判断一字符串能否回文,回文是指正反序相同,如LeveL
#include<stdio.h>
#include<string.h>
int fun(char *m)
{
int i=0;
i=strlen(m);
int k;
for (k = 0; k < i; k++)
{
if( m[k] = m[i- k – 1])
printf(“YES”);
else
printf(“NO”);
}
}
main()
{
char *p;
gets(p);
fun(p);
}
#include<stdio.h>
#include<string.h>
int fun(char *m)
{
int i=0;
i=strlen(m);
int k;
for (k = 0; k < i; k++)
{
if( m[k] = m[i- k – 1])
printf(“YES”);
else
printf(“NO”);
}
}
main()
{
char *p;
gets(p);
fun(p);
}
解决方案
60
错误好几个:
1.你应该给p分配空间,否则的话gets会向未知区域写入值
2.m[k] = m[i- k – 1]这里少了一个=
3.你比较的时候,不应该每比较一次就printf一次,而应该等比较结束再printf
4.fun既然不用返回值就改为void,main前面也漏了返回值类型
1.你应该给p分配空间,否则的话gets会向未知区域写入值
2.m[k] = m[i- k – 1]这里少了一个=
3.你比较的时候,不应该每比较一次就printf一次,而应该等比较结束再printf
4.fun既然不用返回值就改为void,main前面也漏了返回值类型
#include<stdio.h> #include<string.h> void fun(char *m) { int i=0,flag=0; i=strlen(m); int k; for (k = 0; k < i; k++) { if( m[k] != m[i- k - 1]) { flag = 1; break; } } if(!flag) printf("YES\n"); else printf("NO\n"); } void main() { char p[64] = {0}; gets(p); fun(p); }
20
解决了的话记得及时结帖