#include #include #include #define TAILLE_MAX 100 typedef double (*Fonction)(double x); typedef struct{ char desc[TAILLE_MAX]; Fonction f; } funDesc; double cos1(double x){ return cos(x); } double log1(double x){ return log2(x); } double sqrt1(double x){ return sqrt(x); } Fonction demander_fonction(funDesc* choix, int nbMax){ printf("Vous pouvez choisir parmis les chansons suivantes :\n"); for(int i = 0;inbMax); return choix[read-1].f; } int main(void){ double a=0.0, b=0.0; funDesc choice[5]; choice[0] = {"cosinus(x)", cos1}; choice[1] = {"logarithme base 2", log1}; choice[2] = {"Racine carré", sqrt1}; choice[3] = {"sinus(x)", sin}; choice[4] = {"exponentielle", exp}; /* Code qui fonctionne funDesc choice[5] = {{"cosinus(x)", cos1},{"logarithme base 2", log1},{"Racine carré", sqrt1},{"sinus(x)", sin},{"exponentielle", exp}}; */ Fonction f = demander_fonction(choice, 5); printf("Entrez la première borne de l'intégrale :"); scanf("%lf",&a); printf("Entrez la deuxoème borne de l'intégrale :"); scanf("%lf",&b); double val= (b-a)/840*(41*f(a) + 216*f((5*a+b)/6)+27*f((2*a+b)/3)+272*f((a+b)/2)+27*f((a+2*b)/3)+216*f((a+5*b)/6)+41*f(b)); printf("%lf\n",val); return 0; }