Я сделал программу на C, чтобы проверить, является ли число палиндромом или нет. Я использовал следующий код, но он показывает такие числа, как 12321, как не палиндром. Не могли бы вы объяснить мне ошибку в программе ниже?
#include <stdio.h>
int main()
{
int i, x, n, c, j;
int d=0;
printf ("enter total digits in number: ");
scanf ("%d", &i);
printf ("\nenter number: ");
scanf ("%d", &n);
j=n;
for (x=1; x<=i; x++)
{
c= j%10;
d=c*(10^(i-x))+d;
j=(j-c)/10;
}
if (d==n)
{
printf ("\npalindrome");
}
else
{
printf ("\nnon palindrome");
}
return 0;
}
^
— это оператор XOR в C. - person BLUEPIXY   schedule 19.11.2015scanf
. Откуда вы знаете, что они преуспели? - person user694733   schedule 19.11.201510^x
не означает 10, возведенное в степень x, но это означает10 xor x
, xor является исключающим или оператором, это не то, что вам нужно. Вашиscanf
в порядке, пока вы вводите числа. - person Jabberwocky   schedule 19.11.2015d=c*(10^(i-x))+d;
--›d = d * 10 + c;
такжеj=(j-c)/10;
простоj /= 10;
- person BLUEPIXY   schedule 19.11.2015