Определить, является ли число палиндромом - C (СИ)
Формулировка задачи:
#include<stdio.h>
main()
{
int n,a,a1,b,b1,c,c1;
printf("vvedite chislo n<=999\n");
scanf ("%d",&n);
a=n/100;
a1=a%100;
b=a1/10;
b1=b%10;
c=b/10;
c1=b1%10;
if (a=a1,c=c1)
printf ("chislo yavlyaetsya polindromom");
else printf ("chislo ne yavlyaetsya polindromom");
getch();
}Решение задачи: «Определить, является ли число палиндромом»
textual
Листинг программы
void is_palindrome(int n)
{
char str[100];
sprintf(str, "%d", n);
int i = 0, z = strlen(str);
for(; i< z/2; ++i)
{
if (str[i] != str[z-i])
{
fputs("Not a palindrome!", stdout);
return;
}
}
fputs("Palindrome", stdout);
return;
}
Объяснение кода листинга программы
- В функции is_palindrome(int n) определен тип функции и ее параметр n.
- Создана переменная типа char с именем str и размером 100 байт.
- С помощью функции sprintf(str,
%d, n) в переменную str записывается строковое представление числа n. - Создаются две переменные i и z, где i — счетчик для прохода по строке str, а z — длина строки str.
- В цикле for(; i< z/2; ++i) происходит сравнение символов под адресами str[i] и str[z-i].
- Если символы не равны, то выводится сообщение
Not a palindrome!и функция возвращает управление. - Если все символы равны, то выводится сообщение
Palindromeи функция возвращает управление.