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

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

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

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

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

textual
Листинг программы
#include <iostream.h>
 
 
bool isPalindrom (int num);
 
int main()
{
    int num;
    char choise= 0;
    bool bWork = true;
    while( bWork )
    {
        cout<<"Enter num : ";
        cin>>num;cin.get();
        //Если ввели отрицательное умнождаем на -1 и рассматриваем модуль
        if( num < 0)
            num *=-1;
        if(isPalindrom(num))
            cout<<"Number is palindrom"<<endl;
        else
            cout<<"Number is not palindrom"<<endl;
        cout<<"Enter Y for new input";
        cout<<"Your choise : ";
        cin>>choise;cin.get();
        if(toupper(choise) != 'Y')
            bWork = false;
    }
    return 0;
}
 
 
bool isPalindrom(int num)
{
    int array[8];
    int iDigit  = 0;
    int nDigits = 0;
    bool bPalindrom = num >0;
    for(nDigits = 0; bPalindrom && num; nDigits++)
    {
        array[nDigits] = num % 10;
        num = num / 10;
    }
    for(iDigit  = 0; iDigit < nDigits / 2 && bPalindrom; iDigit++)
        bPalindrom = (array[iDigit] == array[nDigits - 1 - iDigit]);
    return bPalindrom;
}

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

  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
Похожие ответы