c语言改程序,递归判断一个字符串是否回文,问题应该在facto函数上

#include<stdio.h>
#include<string.h>
main()
{
char a[100];
gets(a);
int i=0,n;
n=strlen(a);
int facto(char a[]);
if(facto(a)!=0) printf("Yes\n");
if(facto(a)==0) printf("No.\n");
}
int facto(char a[])
{
int n,i;
n=strlen(a);
if(i>=n-i+1)return 1;
else if(a[i]==a[n-i-1])
{
i++;
facto(a);
}
else return 0;
}

#include<stdio.h>
#include<string.h>
main()
{
char a[100];
int i=0,n;
int facto(char a[],int n);
gets(a);
n=strlen(a);
if(facto(a,n)!=0)
printf("Yes\n");
else
printf("No.\n");
}
int facto(char a[],int n)
{
int i=0;
i= strlen(a);
if(n==(i+1)/2) return 1;
else if(a[i-n]==a[n-1])
{
facto(a,n-1);
}
else return 0;
}
帮你改正了一下!追问

子函数里n不用赋值么

追答

n已经被当作一个实参代入到函数里了
没有必要重复赋值

温馨提示:答案为网友推荐,仅供参考
相似回答