/*
david ballantyne
10/10/13
assesment lab 2
*/
//Libraries
#include <iostream>
//Global Constants
//Functioning Prototypes
using namespace std;
int main() {
int n, num, digit, rev = 0;
cout << "Enter a positive number"<<endl;
cin >> num;
num=n;
do{
digit = num%10;
rev = (rev*10) + digit;
num = num/10;
}
while (num!=0);
if (n == rev)
cout << " The number is a palindrome"<<endl;
else
cout << " The number is not a palindrome"<<endl;
return 0;
}
Я вхожу в палиндром, и он продолжает говорить мне, что это не палиндром, также, если бы вы могли помочь мне понять, какую петлю я буду использовать, чтобы спросить: "Хотелось бы попробовать еще раз y/n". Буду благодарен.
cin >> num;
num=n;
назначает заданное пользователем целое num
затем заменяет его значением неинициализированной переменной n
Вы хотели отменить назначение?
n=num;
вместо?
также, если бы вы могли помочь мне понять, какой цикл я бы использовал, чтобы спросить "хотите ли вы попробовать снова y/n"
Вы можете использовать do...while
в while
do...while
цикл с условием while
рассчитывается после того, как вы сообщить, было ли число палиндром.
вероятно, проще преобразовать число в строку. создайте новую строку, обратную порядку первой строки. А затем сравните, чтобы убедиться, что они одинаковые. На самом деле нет оснований делать какую-либо реальную математику, палиндромы лексические, а не математические.
#include <iostream>
using namespace std;
int main()
{
int userNum, palindrome[100], rem, rem2, count=0, count2=0, compare,
compare2;
bool flag;
cout << "Enter number to test for Palindrome: ";
cin >> userNum;
compare = userNum;
compare2 = userNum;
// counting the digits in the number.
do {
rem = compare % 10;
count += 1;
compare /= 10;
} while (compare >= 1);
// inputing in an array.
for (int i=0; i<count; i++)
{
rem2 = compare2 % 10;
palindrome[i] = rem2;
compare2 /=10;
}
// Comparing array with palindrome.
for (int i=0; i < count; i++)
{
if (palindrome[i] != palindrome[count-i-1])
count2 = 1;
}
if (count2 == 1)
cout << "Not a palindrome.";
else
cout << "Palindrome\n";
return 0;
}