ciao, ho dato una occhiata al tuo problema...pensavo di risolvero così...vedi un pò se t va bene...magari prova a vedere se si può fare qualche modifica per ottimizzarlo un pò!
ciao
codice:#include <stdio.h> #include <stdlib.h> int seq_ord_array(int [],int , int*); int main(int argc, char *argv[]) { int a[5]={9,5,4,3,1}; int i,n=5; int index_start; int dim_seq; dim_seq = seq_ord_array(a,n, &index_start); printf ("%d %d\n", index_start, dim_seq); for (i=index_start; i<index_start+dim_seq; i++ ) { printf ("%d ", a[i]); } return 0; } int seq_ord_array(int v[],int n, int* index_start) { int i,j=0,k=1,x; int max=0; int cont; i=0; while ( i<n-1 ){ cont=1; if ( v[i] < v[i+1] ) { cont++; k = i+1; x=i; while ( k < n-1 ) { if ( v[k] < v[k+1] ) cont++; k++; } if ( cont > max ) { max = cont; j=x; } } i=i+k; } *index_start = j; return max; }

Rispondi quotando