判断是否为回文编译结果出错,求帮助

#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;
}

img

供参考