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
| //-------------------------------
#include <stdio.h>
// Fonctions dont l'adresse est de type z
int f1(int a) {return a-1;}
int f2(int a) {return a-2;}
int f3(int a) {return a-3;}
//-------------------------------
typedef int(*z) (int);
int mystery(z t[], int n)
{
z* s = t;
while (*t && (*t)(n))
t++;
return *t ? (t - s) : -1;
}
//-------------------------------
int main(void)
{
int i ;
z tab[] = {f1,f2,f3,NULL}; //Tableau de pointeurs sur les fonctions terminé par NULL
for(i=0; i<5 ;i++)
printf("%d\n", mystery(tab,i)); // affichage du résultat de la fonction mystery
return 0;
} |
Partager