Bonjour,
Actuellement entrain d'apprendre à utiliser les pointeurs, j'essaye un exercice qui consiste à utiliser plusieurs fonctions afin de faire deux opérations élémentaires... une soustraction et une addition...
Concrètement, le but étant d'avoir une fonction somme ne retournant rien ni aucun affichage avec 3 paramètres (les deux chiffres a additionner et une variable de stockage), une fonction soustraction qui ne retourne rien elle non plus (les deux chiffres a soustraire et une variable de stockage), une fonction calcul qui appelle les deux fonctions précédente avec 4 paramètres (cette fonction n'affiche rien ce n'est pas le but mais doit par contre retourner les deux résultats, celui de la somme et celui de la soustraction).
Par la suite un simple scanf pour demander deux valeurs et l'appel de la fonction calc(a,b,C,D) afin de réaliser les opérations citées plus haut.
Pour l'instant j'arrive bien à obtenir le résultat escompté, cependant avec des warnings que je n'arrive pas à régler malgré qu'il soit relativement explicite...
Auriez vous une idée de la méthode ?
voici le code en question :
Avec pour résultat :
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 #include <stdio.h> int somme(int a,int b, int S){ S=a+b; } int diff(int a,int b,int D) { D=a-b; } int calc(int a,int b,int* E,int* R) { *E=somme(a,b,E); *R=diff(a,b,R); } int main() { int a=0,b=0,S,D; printf("Entrez la valeur de a et b\n"); scanf("%d%d",&a,&b); calc(a,b,&S,&D); printf("la somme de a+b = %d, la difference entre a et b est de : %d", S,D); }
Merci d'avance : )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 main.c:3:5: note: expected int but argument is of type int * main.c:12:14: warning: passing argument 3 of diff makes integer from pointer without a cast [-Wint-conversion] main.c:6:5: note: expected int but argument is of type int * Entrez la valeur de a et b 10 15 la somme de a+b = 25, la difference entre a et b est de : -5
Partager