2016-05-13 12 views
-1

Ich habe den folgenden Code für die Palindrome-Prüfung eines Integer-Arrays verwendet und den Wert der Variablen 'declare' als Palindrom-Überprüfung verwendet. Ich habe die Technik benutzt, dass, wenn deklaration am Ende 1 ist, das Array Palindrom ist, sonst nicht. Aber es funktioniert nicht. Am Ende des Codes behält es immer den Wert von declare, der unabhängig vom Rest des Codes initialisiert wurde. Bitte Debuggen.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"); 
} 
+0

Willkommen bei Stack Overflow! Es klingt, als müssten Sie lernen, wie Sie einen Debugger verwenden, um durch Ihren Code zu gehen. Mit einem guten Debugger können Sie Ihr Programm Zeile für Zeile ausführen und sehen, wo es von dem, was Sie erwarten, abweicht. Dies ist ein essentielles Werkzeug, wenn Sie programmieren wollen. Weiterführende Literatur: ** [Wie kleine Programme zu debuggen] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver

+1

Ich stimme für das Schließen dieser Frage als Off-Topic, weil wir ** kein ** Debugging-Service sind. – NathanOliver

+1

Beachten Sie, dass das Deklarieren von 'void main()' im globalen Namespace in C++ nicht zulässig ist. Sie sollten den Standard "int main (void)" verwenden, es sei denn, Sie haben einen besonderen Grund, eine Nicht-Standard-Deklaration zu verwenden. – MikeCAT

Antwort

1

if (array1 [u] = Bestimmer [u])

sollte

if (array1 [u] == Bestimmer [u]) sein

+0

Hat nicht bemerkt, dass. Danke ein Haufen, debuggte :) –

+0

Kein Problem. Sie können es als beantwortet markieren (oder entfernen Sie/etc). – Valmond