2016-11-22 77 views
0
void *max_subsequence(node *head){ 

    node *max=head; 
    int count=0; 
    int count1=0; 
    int i; 

    while(head!=NULL){ 
     count=0; 
     while(head->num < head->next->num){ 
      count++; 
      head=head->next; 
     } 
     if(count > count1){ 
      count1=count; 
     } 

     head=head->next; 
     max=head; 
    } 
} 

此代碼不能編譯,我不知道爲什麼。 它應該找到存儲在列表中的給定序列的最大遞增子序列。任何人都可以給我一個提示嗎?查找給定數字序列的最大子序列(在列表中)

typedef struct node1{ 
    int num; 
    struct node1 *next; 
    }node; 
+1

在'while(node-> num < node-> next-> num)''你不知道'node-> next!= NULL'。這將是一個運行時錯誤。 –

+0

'max_subsequence'必須返回一個值。 – BLUEPIXY

+0

我知道它必須返回一個值,我知道我會在代碼中做什麼。我正在考慮「記憶」,在最大變量中,這是最大子序列的開始節點。 – Ross

回答

1

更改while循環從node->在兩個head->。另外請務必注意Weather Vane關於潛在運行時錯誤的評論。

+0

是的,'node'是一個類型,而不是一個變量。 –

+0

我做過了,我在原來的代碼中,在我的電腦上寫過。翻譯時出錯。抱歉! – Ross

+1

@Ross現在您知道我們爲什麼要求[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)顯示問題。 –

相關問題