Tableau de fonctions en C
Résolu
UNIX/VI/SHELL
Messages postés
89
Statut
Membre
-
UNIX/VI/SHELL Messages postés 89 Statut Membre -
UNIX/VI/SHELL Messages postés 89 Statut Membre -
Bonjour,
Je voudrais réaliser un programme; Dans ce programme il faudrait appeler des fonctions en fonction d'une autre variable, en utilisant un tableau de fonctions.
Comment feriez-vous ? Avec un peu de code.
Je voudrais réaliser un programme; Dans ce programme il faudrait appeler des fonctions en fonction d'une autre variable, en utilisant un tableau de fonctions.
Comment feriez-vous ? Avec un peu de code.
A voir également:
- Tableau de fonctions en C
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
2 réponses
Salut,
Exemple, on a deux nombres (3 et 5), si l'utilisateur rentre +, on fait l'addition, s'il rentre *, on fait la multiplication:
Exemple, on a deux nombres (3 et 5), si l'utilisateur rentre +, on fait l'addition, s'il rentre *, on fait la multiplication:
#include <stdio.h>
typedef int (*op)(int, int); // Type pointeur vers fonction qui prend deux entiers en paramètres et retourne un entier
int addition(int a, int b)
{
return a + b;
}
int multiplication(int a, int b)
{
return a * b;
}
//Tableau de pointeur de fonctions avec nos deux fonctions:
op tab_op[] = {
addition,
multiplication
};
int main()
{
int a = 3, b = 5;
char c = getchar();
switch (c) {
case '+':
printf("%d\n", tab_op[0](a, b));
break;
case '*':
printf("%d\n", tab_op[1](a, b));
break;
default:
printf("%c toi même!\n", c);
break;
}
return 0;
}
#include <stdio.h> int addition(int a, int b) { return a + b; } int multiplication(int a, int b) { return a * b; } //Tableau de pointeur de fonctions avec nos deux fonctions: int (*tab_op)(int, int) [] = { //Etrange hein? addition, multiplication }; int main() { int a = 3, b = 5; char c = getchar(); switch (c) { case '+': printf("%d\n", tab_op[0](a, b)); break; case '*': printf("%d\n", tab_op[1](a, b)); break; default: printf("%c toi même!\n", c); break; } return 0; }