bonsoir à tout le monde ,
je cherche à appeler des fonctions par pointeur seulement j'ai eu quelques complications. Apparemment ça vient du générateur de valeur . J'ai bricolé pour avoir des valeurs Float en faisant int/int. Voilà le programme.
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <stdlib.h>            /* les bibliotheques stdlib.h et time.h sert à utiliser la fonction "randomize"*/
#include <stdio.h>
#include <time.h>
float Max(float *t,int n)             /* la fonction Max qui recherche le maximum dun tableau */
{
	float m=t[0];
	for (int i=0;i<n;i++)
		if (t[i]<m)
			m=t[i];
	return m;
}
float Somme(float *t,int n)
{  float s=t[0];
	for (int i=0;i<n;i++)
		s=s+t[i];
	return s;
}
float Produit(float *t,int n)
{  float p=1;
	for (int i=0;i<n;i++)
		p=p*t[i];
	return p;
}
float Moyenne(float *t,int n)
{  float m=t[0];
	for (int i=0;i<n;i++)
		m=m+t[i];
	return (m/n);
}
int main()
{  randomize();
	float t[100],i,n;
	printf("donner la taille du vecteur \n");
	scanf("%d",&n);
	for (i=0;i<n;i++)
		t[i]=1.5+(rand()%10/(rand()%5+1.0));
	printf("le tableau est \n");
	for (i=0;i<n;i++)
		printf("%.2f\t",t[i]);
	printf("la somme est %.2f le max %.2f le produit %.2f la moyenne %.2f\n",Somme(t,n),Max(t,n),Produit(t,n),Moyenne(t,n));
	float (*r[4])(float *,int)={Max,Somme,Produit,Moyenne};
	puts("Donner loperation que vous voulez faire\n");
	scanf("%d",&i);
	float R=(*r[i-1])(i);
	printf("Le resultat est R=%.2f\n",R);
	return 0;
}