2016-05-13 123 views
-1

我使用下面的代碼對整數數組進行迴文檢查,並將變量'declare'的值用作迴文檢查。我使用的技術是,如果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"); 
} 
+0

歡迎來到Stack Overflow!這聽起來像你可能需要學習如何使用調試器來遍歷代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:** [如何調試小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver

+1

我投票結束此問題爲因爲我們**不是**調試服務。 – NathanOliver

+1

請注意,在全局名稱空間中聲明'void main()'在標準C++中是非法的。你應該使用標準的'int main(void)',除非你有任何特殊的理由使用非標準聲明。 – MikeCAT

回答

1

如果(數組1 [U] =確定[U])

應該是

如果(數組1 [U] ==確定[U])

+0

沒有注意到。謝謝。一堆,調試:) –

+0

沒問題。您可以將其標記爲已回答(或刪除/等)。 – Valmond