Bonsoir à tous .
Je poste ici car j'ai un soucis avec un programme que j'ai réaliser en language C.
Ce programme réalise quelque chose d'assez basique, il permet de saisir des
valeurs dans un tableau dont la taille est fixé à 10 au maximum.
Pour chaque case jusqu'à atteindre la taille du tableau le programme demande à l'utilisateur de saisir des valeurs .
Une fois ces valeurs saisies on souhaite procéder à une recherche séquentielle qui va nous retourner la position de la valeur rechercher.
Jusque là je n'ai absolument aucun soucis et mon programme fonctionne parfaitement.
Je souhaite cependant rajouter une fonctionnalité à ce programme qui est l'affichage de la plus grande valeur et de la plus petite valeur saisies.
J'ai donc utiliser pour ce faire un Void avec 4 paramètres qui sont les suivants : le tableau , la taille du tableau, max, min. (Il est possible de faire autrement mais le but de l'exercice étant d'utiliser une procédure)
Je souhaite bien évidement connaitre quelle est la valeur max et quelle est la valeur min je fait donc un affichage , et c'est là qu'est mon problème l'instruction printf me retourne ce qui semble être une adresse mémoire.
Ma question est donc comment faire pour pouvoir récupérer mes valeurs ?
Voici mon code :
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 #include <stdio.h> #include <stdio.h> void maxmin (int tab[], int taille[], int *min, int *max); int main() { /* Déclaration des variables */ int TAB[10]; int VALEUR; int POSITION; int N; int I; int max = 0; int min = 0; /* Saisie du tableau */ printf("Dimension du tableau (max 10) : "); scanf("%d", &N ); for (I=0; I<N; I++) { printf("position %d : ", I); scanf("%d", &TAB[I]); } /* Recherche séquentielle */ printf("valeur rechercher : "); scanf("%d", &VALEUR ); printf("Tableau: \n"); for (I=0; I<N; I++) printf("%d ", TAB[I]); printf("\n"); POSITION = -1; for (I=0 ; (I<N)&&(POSITION==-1) ; I++) if (TAB[I]==VALEUR) POSITION=I; if (POSITION==-1) {printf("La valeur recherchée n,'existe pas"); }else { printf("%d se trouve position %d\n",VALEUR, POSITION); } /* Procédure pour affiche le max et le min du tableau */ void maxmin (int tab[], int taille[], int *min, int *max) { int i=0; *max = tab[0]; *min = tab[0]; for (i=0;i<taille;i++) { if (tab[i]>(*max)) { (*max)=tab[i]; } if (tab[i]<(*min)) { (*min)=tab[i]; } } } /* Affichage du max et du min ( mon problème ce situe ici) */ printf ("max = %d\t",max); printf ("min = %d",min); }
Partager