Verifica di una sequenza perfetta
#include <stdio.h>
int perfetta(int* v)
{
int i,j;
for (i = 1; i <= 9; i++)
{ /* 24-2*i e l'ultima locazione per la prima occorrenza di i che lasci
spazio sufficiente per le altre 2 occorrenze di i */
for (j = 0; j <= 24-2*i; j++)
if (v[j] == i && v[j+i+1] == i && v[j+2*i+2] == i)
break;
if (j > 24-2*i) /* non ho trovato un j che soddisfi la condizione per i */
return 0;
}
return 1;
}
main()
{ int VS[4][27] = {
/* VS[0]: sequenza perfetta
28 //Soluzioni degli esercizi su vettori, stringhe e liste
{1,9,1,2,1,8,2,4,6,2,7,9,4,5,8,6,3,4,7,5,3,9,6,8,3,5,7},
/* VS[1], VS[2], VS[3]: sequenze non perfette */
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,9,1,1,2,8,2,4,6,2,7,9,4,5,8,6,3,4,7,5,3,9,6,8,3,5,7},
{1,9,1,2,1,8,2,4,6,2,0,9,4,5,8,6,3,4,0,5,3,9,6,8,3,5,0}};
int i;
for (i = 0; i < 4; i++)
{
printf("La sequenza %d e perfetta? ",i);
if (perfetta(VS[i]))
printf("Si\n");
else
printf("No\n");
}
}
La serie perfetta
Esercizio
Il programma funziona se si inserisce la seguente stringa, che è composta per ogni numero di 3 dello stesso tipo fino a nove; se è giusta dà uno come risultato, altrimenti 0.
Ad esempio, la sequenza (1,9,1,2,1,8,2,4,6,2,7,9,4,5,8,6,3,4,7,5,3,9,6,8,3,5,7) è perfetta.