写一被调函数int huiwen(char *p),判断一个字符串是不是回文,如果是,输出1,否则输出0.
#include<stdio.h>#include<string.h>{chars[100],*p;inti;gets(s);p=s;for(i=0;i<=strlen(...
#include<stdio.h>
#include<string.h>
{
char s[100],*p;
int i;
gets(s);
p=s;
for(i=0;i<=strlen(s)/2;i++)
if(*(p+i)!=*(p+strlen(s)-i-1))
{
printf("0");
break;
}
else if(i==strlen(s)/2)
printf("1");
}
int main()
{
char str[100],*pstr;
gets(str);
pstr=str;
printf("%d", huiwen(pstr));
}
为什么我这样写就是错的。。。编译出来的结果总是错的- - 展开
#include<string.h>
{
char s[100],*p;
int i;
gets(s);
p=s;
for(i=0;i<=strlen(s)/2;i++)
if(*(p+i)!=*(p+strlen(s)-i-1))
{
printf("0");
break;
}
else if(i==strlen(s)/2)
printf("1");
}
int main()
{
char str[100],*pstr;
gets(str);
pstr=str;
printf("%d", huiwen(pstr));
}
为什么我这样写就是错的。。。编译出来的结果总是错的- - 展开
1个回答
展开全部
有如下错误:
无函数名,返回值类型,参数
输入重复
逻辑错误
类型错误
建议作如下修改:
#include<stdio.h>
#include<string.h>
int huiwen(char s[])
{ int i;
char *p=s;
for(i=0;i<=strlen(s)/2;i++)
if(*(p+i)!=*(p+strlen(s)-i-1))
break;
if(i<=strlen(s)/2) return 0;
else return 1;
}
int main()
{
char str[100],*pstr;
gets(str);
pstr=str;
printf("%d", huiwen(pstr));
}
追问
老师,如果题目限制了huiwen(char *p)不能用(char s[])怎么弄呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询