2014-01-29 97 views
0

我想弄清楚如何使帕斯卡三角形只有一個,一維數組。我在這裏有一些代碼,我一直在努力,但它卡住了。提前致謝。如果你需要其他的程序,請讓我知道和生病發布。帕斯卡爾三角形使用一維數組C++

int fillArray(int triArray[], int arrSize) 
{ 
    int last = 1; 
    int current = 3; 
    int flag = 0; 

    for (int x = current; x < arrSize; x++) 
    { 
     if (triArray[last] == 1 && flag == 0) 
     { 
      triArray[current] = 1; 
      current++; 
      last++; 
      flag++; 

      cout << triArray[x] << " "; 

     } 

     triArray[current] = triArray[last] + triArray[last - 1]; 
     current++; 

     cout << triArray[x] << " "; 

     if (triArray[last] == 1) 
     { 
      triArray[current] = 1; 
      flag = 0; 
      current++; 
      last++; 

      cout << triArray[x] << endl; 
     } 


    } 

    return *triArray; 
} 
+0

你是什麼意思「它卡住了」?你有僵局嗎? –

+0

我不知道你的死鎖意味着什麼,但是它被卡在數字3上,就像它經歷了罰款1,11,121,然後它混淆並放入21333,然後重複其餘數組大小的3。 – Puddinglord

回答

0

您應該考慮依次創建每一行,並將它們順序存儲在線性數組中。在線性數組上構建一些抽象,以便能夠按行和列訪問。否則,你只會糾結於代碼中(就像你現在看起來一樣)。

+0

感謝您的意見,我是新來的,不知道如何結束我問自己的問題哈哈。我昨晚在凌晨2點找到了它,然後使用了一個數組,然後使用了lastOrder,currentOrder和一個add變量,並計算出每個序列中只需將加法器加1,然後在開始和結尾處加1。但非常感謝你的回答! – Puddinglord