Patrice T
Прежде всего, используйте правильный отступ, это поможет вам читать код, это поможет незнакомцам читать ваш код.
#include <stdio.h>
#include <string.h>
int main()
{
int n,flag=0,p;
scanf("%d",&n);
while(n--){
int j=0;
char s[10000];
scanf("%s",&s);
j=strlen(s);
for(int i=1;i<=j/2;i++){
if(s[i]==s[j-i+1])
flag++;
p=i;
}
if(flag==p)
printf("palindrome");
else
printf("not");
}
}
Массивы C основаны на 0, что означает, что первый символ в
s
является
s[0]
Вы начинаете проверять второй символ.
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя
отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков:
отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.
Отладчик-Википедия, свободная энциклопедия[
^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[
^]
Базовая отладка с помощью Visual Studio 2010-YouTube[
^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.
jatinp510
//в этом коде я проверил, является ли это палиндромом, и если это палиндром, то он проверит, является ли он нечетным или четным
// предложите мне лучший код, чтобы улучшить мои навыки
#include < stdio.h>
#include & lt;string.h>
тап_п()
{
int n, p, i;
scanf ("%d",& n);
в то время как(n--){
int flag=0, type=0;
int j=0;
char s[100000];
scanf ("%s",& s);
j=strlen(s);
если (j==1){
printf ("YES ODD\n");
}
еще{
если (j%2==0){
тип=1;
}
for (int i=0;i< j / 2; i++){
если (s[i]==s[j-i-1])
флаг++;
p=i;}
если усилитель(флаг==(П+1)&;&амп;вид==1)
printf ("да даже\n");
else if (flag==(p+1)& & amp; type==0)
printf ("YES ODD\n");
еще
printf ("NO\n");
}}
}