Pourtant simple ! ( C)
Résolu
GIO0892
Messages postés
581
Date d'inscription
Statut
Membre
Dernière intervention
-
GIO0892 Messages postés 581 Date d'inscription Statut Membre Dernière intervention -
GIO0892 Messages postés 581 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila je n'arrive pas a résoudre se code assez simple ^^
il maffiche toujour la derniere valeur tapez en la repetant n fois .
merci de votre aide
voila je n'arrive pas a résoudre se code assez simple ^^
il maffiche toujour la derniere valeur tapez en la repetant n fois .
#include <stdio.h> #include <stdlib.h> void affichage(double *km,int n); int main() { int i,n;// n = trajet double *km;// nombre de km parcourue stocket dans un tableau printf("veuillez entrer le nombre de trajet effectuer :",n);// on demande le nombre de trajet scanf("%d",&n); km=malloc(n*sizeof(double)); for(i=0;i<n;i++){ printf("veuillez entrer le nombre de km parcourrue pour le trajet %d :",i+1); scanf("%lf",km); } affichage(km,n); return 0; } void affichage(double *km, int n){ int i; for(i=0;i<n;i++){ printf("%lf",*km); } }
merci de votre aide
A voir également:
- Pourtant simple ! ( C)
- Iphone 14 simple - Guide
- Simple pdf - Télécharger - PDF
- Simple ocr - Télécharger - Bureautique
- Simple file locker - Télécharger - Sécurité
- Simple comic - Télécharger - Vie quotidienne
5 réponses
Salut,
comme tu le dis c'est plutôt simple : tu n'utilises pas la variable i dans tes boucles for. Je pense que tu n'es pas à l'aise avec le principe des pointeurs, et tu devrais commencer par faire des tutos dessus.
;)
comme tu le dis c'est plutôt simple : tu n'utilises pas la variable i dans tes boucles for. Je pense que tu n'es pas à l'aise avec le principe des pointeurs, et tu devrais commencer par faire des tutos dessus.
;)
Bonjour,
Je me permets d'écrire même si tu as trouvé la solution car le code est faux, même si ça semble marcher...
scanf("%lf",km);
km est un pointeur sur un tableau de double. J'imagine que tu veux donc écrire dans chacune de ses cases.
Pour ça, il faut mettre : scanf("%lf",&km[i]); ou plus simplement : scanf("%lf",km+i);
printf("%lf",*km);
Même si certains compilateurs ne râlent pas. Il faut mettre "%f" dans printf pour les double. Et là, tu n'affiches pas tous les éléments du tableau.
Il faudrait donc mettre : printf("%f",km[i]);
Sinon, petite remarque sur ta fonction affichage. Pourquoi faire passer le pointeur ? Autant mettre le prototype en : void affichage (double km, int n); et appeler la fonction par : affichage(*km, n); C'est mieux ainsi puisque affichage n'a pas lieu de modifier les variables.
Et enfin, n'oublie pas non plus de mettre un free pour libérer la zone avec le return 0; final.
Cdlt,
Je me permets d'écrire même si tu as trouvé la solution car le code est faux, même si ça semble marcher...
scanf("%lf",km);
km est un pointeur sur un tableau de double. J'imagine que tu veux donc écrire dans chacune de ses cases.
Pour ça, il faut mettre : scanf("%lf",&km[i]); ou plus simplement : scanf("%lf",km+i);
printf("%lf",*km);
Même si certains compilateurs ne râlent pas. Il faut mettre "%f" dans printf pour les double. Et là, tu n'affiches pas tous les éléments du tableau.
Il faudrait donc mettre : printf("%f",km[i]);
Sinon, petite remarque sur ta fonction affichage. Pourquoi faire passer le pointeur ? Autant mettre le prototype en : void affichage (double km, int n); et appeler la fonction par : affichage(*km, n); C'est mieux ainsi puisque affichage n'a pas lieu de modifier les variables.
Et enfin, n'oublie pas non plus de mettre un free pour libérer la zone avec le return 0; final.
Cdlt,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question