1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #include <stdio.h>
int fonction(int * tableau, int taille_tableau, int const * const tableau_autorise , int taille_tableau_autorise , int i, int * p_erreur_indice_tableau)
{
int j;
for ( ; i < taille_tableau ; i++)
{
for ( j = 0 ; j < taille_tableau_autorise; j++ )
{
if ( tableau[i] == tableau_autorise[j] )
break;
}
if (j == taille_tableau_autorise)
{
*p_erreur_indice_tableau = i;
return 0;
}
}
return 1;
}
int main(void)
{
int tableau[5] = { 0 , 6 , 10 , 11 , 10 }; /* valeurs au pif */
const int tableau_autorise[10] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
int erreur_indice_tableau;
int taille_tableau, taille_tableau_autorise;
int i;
taille_tableau = sizeof tableau / sizeof tableau[0];
taille_tableau_autorise = sizeof tableau_autorise / sizeof tableau_autorise[0];
printf("Valeurs autorisees : ");
for ( i = 0 ; i < taille_tableau_autorise ; i++ )
printf("%d " , tableau_autorise[i] );
printf("\n\n");
printf("Contenu du tableau : ");
for ( i = 0 ; i < taille_tableau ; i++ )
printf("%d " , tableau[i] );
printf("\n\n");
i = 0;
while ( !fonction(tableau , taille_tableau , tableau_autorise , taille_tableau_autorise , i , &erreur_indice_tableau) )
{
printf("La valeur a l'indice %d (valeur %d) du tableau n'est pas correcte. Entrez une nouvelle valeur : " , erreur_indice_tableau , tableau[erreur_indice_tableau]);
scanf("%d" , &tableau[erreur_indice_tableau]);
i = erreur_indice_tableau ;
}
printf("\nLe tableau a ete scanne avec succes. Voici son contenu : ");
for ( i = 0 ; i < taille_tableau ; i++)
printf("%d " , tableau[i] );
printf("\n");
return 0;
} |
Partager