写一函数,判断一字符串能否回文,回文是指正反序相同,如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
解决了的话记得及时结帖
