Я использовал следующий код для проверки палиндрома целочисленного массива и использовал значение переменной 'declare' как проверку палиндрома. Я использовал технику, которая, если объявить 1 в конце, массив является палиндром, иначе нет. Но это не работает. В конце кода он всегда сохраняет значение declare, которое было инициализировано, независимо от остальной части кода. Отладка.C++ Integer Array Palindrome Checker
#include <iostream>
using namespace std;
void main()
{
int array1[3] = {0,0,1};
int j = 2;
cout << "Given Array is:\n";
for (int i = 0; i < 3; i++)
cout << array1[i];
cout << endl;
int determiner[3];
for (int i = 0; i <3; i++){
determiner[j] = array1[i];
j -= 1;
}
cout << "Reversed Array is:\n";
for (int i = 0; i < 3; i++)
cout << determiner[i];
cout << endl;
int declare;
for (int u = 0; u < 3; u++)
{
if (array1[u] = determiner[u])
{
declare = 1;
}
if (array1[u] != determiner[u])
{
declare = 0;
break;
}
}
cout << endl;
cout << declare<< endl;
if (declare==1)
cout << "Given Array is Palindrome. Cheers!!!\n";
if (declare==0)
cout << "Emhmm! This aint Palindrome.\n";
system("pause");
}
Добро пожаловать в переполнение стека! Похоже, вам, возможно, потребуется научиться использовать отладчик для выполнения вашего кода. С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: ** [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver
Я голосую, чтобы закрыть этот вопрос как вне темы, потому что мы ** не ** отлаживаем службу. – NathanOliver
Обратите внимание, что объявление 'void main()' в глобальном пространстве имен является незаконным в стандартном C++. Вы должны использовать стандартный 'int main (void)', если у вас нет особых причин использовать нестандартное объявление. – MikeCAT