Ricerca della lunghezza più lunga

di il
10 risposte

Ricerca della lunghezza più lunga

Altro programma che come sempre mi pare giusto l' algoritmo (l'ho verificato a mano tante e tante volte, quindi a meno che non sia demente e non mi sia sempre impicciato in teoria dovrebbe tornare) e che comunque non va

Si scriva un programma che chiede all’utente di riempire una matrice NxN (con N costante globale predefinita) di interi e stampa la lunghezza della sequenza più lunga orizzontale, verticale o diagonale di numeri uguali consecutivi.


#include <stdio.h>
#define N 5


int main()
{int i,j,v[N][N],cont=0,max=0;
char inutile;

while (i<N)
{j=0;
while (j<N)
{printf("inserire numero\n");
scanf("%d",&v[j]);
j++;}
i++;}

for (i=0;i<N;i++)
{for (j=0;j<N;j++)
{if (j!=N-1)
{printf("%d", v[j]);
printf(" ");}
else if (j=N-1)
{printf("%d", v[j]);
printf("\n");}
}}

for(i=0;i<N;i++)
{cont=0;
for(j=1;j<N;j++)
{if(v[j]==v[j-1])
{cont++;
}
if(cont>max)
{max=cont;
}
else cont=0;
}
}

for(i=0;i<N;i++)
{cont=0;
for(j=1;j<N;j++)
{if(v[j]==v[j-1])
{cont++;
}
if(cont>max)
{max=cont;
}
else cont=0;
}
}

for(i=0;i<N;i++)
{ cont=0;
for(j=1;j<N-1;j++)
{if (v[j][j+1]==v[j+1][j+1+i]){cont++;}
if(cont>max)
{max=cont;}
else cont=0;}}

for(i=0;i<N;i++)
{cont=0;
for (j=1;j<N-1;j++)
{if(v[j+1+1][j]==v[j+i][j-1]){cont++;}
if(cont>max){max=cont;}
else cont=0;
}
}

for(i=0;i<N;i++)
{cont=0;
for(j=1;j<N-1;j++)
{if(v[j][N-2-j-i]==v[j-1][N-1-j-i]){cont++;}
if(cont>max)
{max=cont;}
else cont=0;
}
}

for(i=0;i<N;i++)
{cont=0;
for(j=1;j<N-1;j++)
{if(v[j+i+1][N-j-1]==v[j+i][N-j]){cont++;}
if(cont>max)
{max=cont;}
else cont=0;
}
}

max=max+1;
printf("la lunghezza massima è\n");
printf("%d",max);

fflush(stdin);
scanf("%c",&inutile);
return 0;
}

10 Risposte

  • Re: Ricerca della lunghezza più lunga

    Concludi la domanda ... cosa succede? Errori? Malfunzionamenti? Quali dati inserisci? Cosa succede?

    Utilizza i tag CODE e indenta il codice quando lo posti nel forum ...
  • Re: Ricerca della lunghezza più lunga

    Si chiedo scusa per non averlo fatto, comunque il codice ritrova la lunghezza max se è in orizzontale o in verticale, ma non se è in diagonale. comunque provvedo a indendare i codici che ho postato e a fornire a tutti qule sia il problema
  • Re: Ricerca della lunghezza più lunga

    Anche qui, in

    {int i,j,v[N][N],cont=0,max=0;
    char inutile;

    while (i<N)

    la variabile i non è inizializzata ... deve avere un valore prima di essere utilizzata.
  • Re: Ricerca della lunghezza più lunga

    Giusto! provo a inizializzarla, comunque ho provato a inserire gli spazi, ma non me li ha salvati, come devo fare per indendare il codice? chiedo scusa ma sono nuovo e ancora non ho ben presente come e quali sono le funzioni che posso utilizzare
  • Re: Ricerca della lunghezza più lunga

    I deve essere inizializzato ... è un errore grave anche se il programma viene compilato.

    Devi usare i tag CODE per il codice vedi il regolamento
  • Re: Ricerca della lunghezza più lunga

    Comunque ho inizializzato il valore e continua a non rilevarmi la massima lunghezza se è in diagonale
  • Re: Ricerca della lunghezza più lunga

    Come hai inizializzato il valore? Come hai modificato il codice?
  • Re: Ricerca della lunghezza più lunga

    Ho semplicemente inizializzato la i a 0, che per come ho pensato il codice è il valore che mi serve, ma non va... e io verrò bocciato a questo esame ne sono convinto .-. ma quanto cavolo siete forti voi che riuscite a programmare? non lo so io...
  • Re: Ricerca della lunghezza più lunga

    Guarda ... è come tutte le altre materie ... basta studiare ed esercitarsi ...
  • Re: Ricerca della lunghezza più lunga

    Secondo me sono io ad essere partiolarmente stupido.. cioè mi sto esercitando tantissimo ma non me ne viene nessuno. eppure ti ripeto, gli algoritmi in teoria mi sembrano sempre che funzionino.. ma non funzionano no dato che il programma non fa quello che deve fare
Devi accedere o registrarti per scrivere nel forum
10 risposte