【发布时间】:2019-07-06 06:12:25
【问题描述】:
给定的字符串是回文,需要说明它是偶回文(偶数长度的回文)还是奇回文(奇数长度的回文),否则返回否。
我写的这段代码没有得到真正的输出
#include<string.h>
#include <stdio.h>
int main(){
int n ;
char s[100000],b[100000];
int count=0,d,h,i,t,j;
if(count<1)
{
scanf("%d", &n);
if(n<=50)
{
for(t=1;t<=n;t++)
{
i=0,j=0,h=0;
scanf("%s", s);
h=strlen(s)-1;
if(h>=1&&h<=100000)
{
for(i=0,j=h;i<=h&&j>=0; j--,i++)
{
b[i]=s[j];
}
if(strcmp(s,b)==0)
{
if(h%2==0)
{
printf("YES EVEN");
printf("\n");
}
else
{
printf("YES ODD");
printf("\n");
}
}
else{
printf("NO");
printf("\n");
}
}
}
}
count++;
}
return 0;
}
#include<string.h>
#include <stdio.h>
int main(){
int n ;
char s[100000],b[100000];
int count=0,d,h,i,t,j;
if(count<1)
{
scanf("%d", &n);
if(n<=50)
{
for(t=1;t<=n;t++)
{
i=0,j=0,h=0;
scanf("%s", s);
h=strlen(s)-1;
if(h>=1&&h<=100000)
{
for(i=0,j=h;i<=h&&j>=0; j--,i++)
{
b[i]=s[j];
}
if(strcmp(s,b)==0)
{
if(h%2==0)
{
printf("YES EVEN");
printf("\n");
}
else
{
printf("YES ODD");
printf("\n");
}
}
else{
printf("NO");
printf("\n");
}
}
}
}
count++;
}
return 0;
}
忘记语法错误,只找到逻辑错误。
我希望输出是
输入
3
abc
abba
aba
您的代码输出
NO
YESODD
NO
预期的正确输出
NO
YESEVEN
YESODD
当我提供一个不超过那个的字符串时,我得到了真实的结果 但是哪里出错了。
【问题讨论】:
-
修复代码格式 /.缩进。
-
单字母变量名.....跳到下一个问题:(
标签: c