#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int isH(char s[],int n)
{
int i,j;
n=1;
for(i=0,j=strlen(s)-1; i<j;i++,j--)
{
if(s[i]==s[j])
{n=1*n;}
else
{n=n*0;}
}
return (n);
}
int main()
{
char s;
int n=1;
printf("请输入字符串:\n");
gets(s);
int isH(s,n);
printf("%d\n",n);
}
你的char s;定义的是一个字符
应该定义成字符数组char s[50];
printf("%d\n",n);改成printf("%d\n", isH(s,n));
char s;改为 char s[100]
初步判断:
gets(s);
int isH(s,n);
第二行改为:
gets(s);
n = isH(s,n); //调用函数接收返回值
你函数中的n应该是字符串的长度吧。用了strlen也能计算出来,这个n没啥用。
代码修改如下:
#include <stdio.h>
#include <string.h>
int isH(char s[])
{
int i,j;
for(i=0,j=strlen(s)-1; i<j;i++,j--)
{
if(s[i]!=s[j])
return 0;
}
return 1;
}
int main()
{
char s[100]={0};
int n=1;
printf("请输入字符串:\n");
gets(s);
n = isH(s);
printf("%d\n",n);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632