J'ai un probleme avec un programme en C
Fermé
driftman123
Messages postés
15
Date d'inscription
vendredi 23 mars 2012
Statut
Membre
Dernière intervention
31 mai 2014
-
13 févr. 2014 à 23:01
Utilisateur anonyme - 14 févr. 2014 à 06:56
Utilisateur anonyme - 14 févr. 2014 à 06:56
A voir également:
- J'ai un probleme avec un programme en C
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Desinstaller un programme - Guide
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
1 réponse
Utilisateur anonyme
Modifié par orinym le 14/02/2014 à 06:59
Modifié par orinym le 14/02/2014 à 06:59
Bonjour,
Tout d'abord merci à l'avenir d'utiliser les balises de code et l'indentation : Ce que tu as posté est illisible. J'attirerai également ton attention sur les règles de politesse basique (Bonjour, merci, orthographe, minimum de soin dans la rédaction...).
Ensuite :
-Il n'y a pas besoin de ";" à la fin de la définition d'une fonction.
-Dans ton for dans la fonction remplissage_funct(), i va de 1 à n inclus (soit 2). Donc comme on indexe à partir de 0 en C, l'élément d'index 0 dans le tableau de struct passé en paramètre ne sera pas modifié, ainsi que les éléments ayant pour index 3, 4, 5... 9.
-Le type de fonction de remplissage_funct() est void, cela signifie que la fonction ne retourne rien. Les modifications apportées au tableau de struct passé en paramètre ne seront pas prises en compte sauf si tu passes en paramètre non pas le tableau, mais l'adresse du tableau. (voir pointeurs). Une autre solution serait de retourner le tableau modifié,
-le prototype du main indique que le type de retour de la fonction est un int.
Où est le retour?
-Tu t'es également un peu foiré dans tes accolades j'ai l'impression.
Voilà ce à quoi cela pourrait ressembler après correction, mais il pourrait y avoir des coquilles puisque je n'ai rien testé et que j'ai fait ça un peu vite-fait. Je t'invite donc à chercher par toi-même et au besoin à te replonger dans tes cours de C.
Note que je ne vois pas à quoi te sert le getch() dans le main.
Cdt,
Orinym
Tout d'abord merci à l'avenir d'utiliser les balises de code et l'indentation : Ce que tu as posté est illisible. J'attirerai également ton attention sur les règles de politesse basique (Bonjour, merci, orthographe, minimum de soin dans la rédaction...).
Ensuite :
-Il n'y a pas besoin de ";" à la fin de la définition d'une fonction.
-Dans ton for dans la fonction remplissage_funct(), i va de 1 à n inclus (soit 2). Donc comme on indexe à partir de 0 en C, l'élément d'index 0 dans le tableau de struct passé en paramètre ne sera pas modifié, ainsi que les éléments ayant pour index 3, 4, 5... 9.
-Le type de fonction de remplissage_funct() est void, cela signifie que la fonction ne retourne rien. Les modifications apportées au tableau de struct passé en paramètre ne seront pas prises en compte sauf si tu passes en paramètre non pas le tableau, mais l'adresse du tableau. (voir pointeurs). Une autre solution serait de retourner le tableau modifié,
-le prototype du main indique que le type de retour de la fonction est un int.
Où est le retour?
-Tu t'es également un peu foiré dans tes accolades j'ai l'impression.
#include<stdio.h> #include<string.h> #include<conio.h> #define n 10 struct produit { char nom[30]; char code[30]; char date[10]; }; void remplissage_funct(struct produit *tab_2[n]) { int i; for (i=0;i<n;i++) { printf("Donner nom:"); scanf("%d",&(*tab_2)[i].nom); printf("Donner code:"); scanf("%d",&(*tab_2)[i].code); printf("Donner date:"); scanf("%d",&(*tab_2)[i].date); } } void affichage_funct(struct produit tab_2[n]) { int i; for (i=0;i<n;i++) { printf("nom:%s,code:%s,date:%s",tab_2[i].nom,tab_2[i].code,tab_2[i].date); } } int main(void) { struct produit tab[10]; remplissage_funct(&tab); affichage_funct(tab); getch(); return (0); }
Voilà ce à quoi cela pourrait ressembler après correction, mais il pourrait y avoir des coquilles puisque je n'ai rien testé et que j'ai fait ça un peu vite-fait. Je t'invite donc à chercher par toi-même et au besoin à te replonger dans tes cours de C.
Note que je ne vois pas à quoi te sert le getch() dans le main.
Cdt,
Orinym