#include
int main()
{
int str[100];
int i,n;
scanf("%d",&n);
for(i=0;i
{
scanf("%d",&str[i]);
}
for(i=0;i<=n/2;i++)
{
if(str[i]!=str[n-i-1])
{
printf("False");
break;
}
}
printf("Ture");
return 0;
}
判断是否为回文,为什么编译出的答案会是FalseTure,我的思路应该没有错啊,不知道代码错在哪里要怎么改,求帮助
输出语句建议加个标记,以标记来判断true或者false。
还有回文一般来说不都是字符串,你怎么是整数数组
你这个printf("Ture")不在任何分支代码中,肯定会被执行的啊
加一个标志变量吧
#include<stdio.h>
int main()
{
int str[100];
int i,n,k=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&str[i]);
}
for(i=0;i<=n/2;i++)
{
if(str[i]!=str[n-i-1])
{
printf("False");
k = 1;
break;
}
}
if(k==0)
printf("Ture");
return 0;
}
这样改:
#include<stdio.h>
int main()
{
int str[100];
int i,n;
int flag=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&str[i]);
}
for(i=0;i<n/2;i++)
{
if(str[i]!=str[n-i-1])
{
printf("False");
break;
}
else
{
flag++;
}
}
if (flag == n/2)
{
printf("Ture");
}
return 0;
}