題目
我的code
語法:
#include<iostream>
using namespace std;
int d[500],c[500],l[500];
void out(int a){
if(l[a]!=a)
out(l[a]); //用遞迴從第一個開始輸出
cout <<d[a]<<endl;
}
int main( int argc, char * argv[] )
{
int i=1,j,k,p,t=0,a;
while(cin >>d[i]!=NULL){ //任意輸入i個整數
l[i]=i;
c[i]=1;
i++;
}
for(j=1;j<i;j++){
p=0;
for(k=1;k<j;k++)
if(d[k]<d[j]&&p<c[k]){
p=c[k];
l[j]=k; //紀錄前一個位子
}
c[j]=p+1;
if(c[j]>t){
a=j;
t=c[j]; //紀錄最大值
}
}
cout <<t<<endl<<"-"<<endl;
out(a);
//system("pause"); <-此為devC++編譯程式要加
return 0;
}
送去ACM測試結果出現"無窮迴圈",請問我的程式碼哪裡出錯??