如此让我郁闷!!!!
#include <string.h>
#include <stdio.h>
int judge(char a,char b)
{
int i;
i=a-b;
if(i==0||i==-32||i==32)
return 1;
else return 0;//相同返回1
}
int panduan(char a[],int n)
{
int i=0,s=0;
for(;i<n;i++)
if(judge(a[i],a[n-i-1])==0) {s=1;break;}
return s;// 对称返回0
}
int alphe(char a[])
{
int i,length,s=0;
length=strlen(a);
for(i=0;i<length;i++)
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
{s=1;break;}
return s;
}
int palin(char a[])
{
char b[100];
int i=0,length,k=0;
gets(a);
length=strlen(a);
for(i=0;i<length;i++)
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
b[k++]=a[i];
if(panduan(b,k)==0&&alphe(b)==1)
printf("%s is a palindrome.\n",a);
else printf("%s is not a palindrome.\n",a);
return 0;
}
int main()
{
int n;
char a[100];
scanf("%d",&n);
while(n>0)
{
palin(a);
n--;
}
return 0;
}
这个程序先输入一个整数n,然后是n次循环;每次判断一个字符串是否是回文的。
但是,它竟然把我输入的那个数字n也当成字符串。为什么,怎么解决!!!!