Определить, является ли строка палиндромом - C (СИ) (75533)

Узнай цену своей работы

Формулировка задачи:

1)Строка содержит одно слово.Проверить,будет ли оно читаться одинаково справа налево и слева направа(т.е.является ли оно палиндромом).

Решение задачи: «Определить, является ли строка палиндромом»

textual
Листинг программы
  1. #include <iostream.h>
  2.  
  3.  
  4. bool isPalindrom (int num);
  5.  
  6. int main()
  7. {
  8.     int num;
  9.     char choise= 0;
  10.     bool bWork = true;
  11.     while( bWork )
  12.     {
  13.         cout<<"Enter num : ";
  14.         cin>>num;cin.get();
  15.         //Если ввели отрицательное умнождаем на -1 и рассматриваем модуль
  16.         if( num < 0)
  17.             num *=-1;
  18.         if(isPalindrom(num))
  19.             cout<<"Number is palindrom"<<endl;
  20.         else
  21.             cout<<"Number is not palindrom"<<endl;
  22.         cout<<"Enter Y for new input";
  23.         cout<<"Your choise : ";
  24.         cin>>choise;cin.get();
  25.         if(toupper(choise) != 'Y')
  26.             bWork = false;
  27.     }
  28.     return 0;
  29. }
  30.  
  31.  
  32. bool isPalindrom(int num)
  33. {
  34.     int array[8];
  35.     int iDigit  = 0;
  36.     int nDigits = 0;
  37.     bool bPalindrom = num >0;
  38.     for(nDigits = 0; bPalindrom && num; nDigits++)
  39.     {
  40.         array[nDigits] = num % 10;
  41.         num = num / 10;
  42.     }
  43.     for(iDigit  = 0; iDigit < nDigits / 2 && bPalindrom; iDigit++)
  44.         bPalindrom = (array[iDigit] == array[nDigits - 1 - iDigit]);
  45.     return bPalindrom;
  46. }

Объяснение кода листинга программы

  1. Включаем заголовочный файл iostream.h, который содержит определения стандартных потоков ввода-вывода.
  2. Дефинируем функцию isPalindrom, которая будет проверять является ли число палиндромом.
  3. В функции main считываем число с помощью функции cin и сохраняем его в переменной num.
  4. Если число отрицательное, то мы его умножаем на -1, чтобы получить положительное число и сохраняем его в переменной num.
  5. Вызываем функцию isPalindrom, передавая ей в качестве аргумента переменную num.
  6. В зависимости от результата функции isPalindrom выводим сообщение о том, является ли число палиндромом или нет.
  7. Запрашиваем у пользователя ввод, при этом сохраняем его выбор в переменной choise.
  8. Если пользователь ввел не 'Y', то выходим из цикла while с помощью оператора break.
  9. Если пользователь ввел 'Y', то снова запрашиваем число и цикл повторяется.
  10. В функции isPalindrom инициализируем массив array, который будет хранить цифры числа.
  11. Инициализируем переменные iDigit и nDigits, которые будут использоваться для перебора цифр в числе.
  12. Инициализируем переменную bPalindrom значением true, которая будет использоваться для проверки является ли число палиндромом.
  13. В цикле while считываем цифры числа и сохраняем их в массиве array.
  14. Перебираем массив array в обратном порядке и сравниваем каждую цифру с соответствующей цифрой в обратном порядке.
  15. Если все цифры совпадают, то возвращаем true, иначе возвращаем false.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы