Probleme de choix de boucle en c
Fermé
Amate2018
Messages postés
4
Date d'inscription
jeudi 23 mai 2019
Statut
Membre
Dernière intervention
27 mai 2019
-
Modifié le 27 mai 2019 à 17:48
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 29 mai 2019 à 14:18
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 29 mai 2019 à 14:18
A voir également:
- Probleme de choix de boucle en c
- Liste déroulante de choix excel - Guide
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
1 réponse
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 099
Modifié le 29 mai 2019 à 14:24
Modifié le 29 mai 2019 à 14:24
Salut Amate2018,
Je ne vois pas bien de quelle boucle tu parles.
Sur tes 200 lignes de code, ton compilateur doit te donner des informations que tu ne devrais pas négliger.
Chez moi, ton code compilé avec gcc et les warnings, donne les problèmes suivants :
Les avertissements concernant les lignes 142, 101 et 119 signalent en fait de grosses erreurs dans ton code, que tu devrais corriger, et tant qu'à faire, règle aussi les autres problèmes signalés par le compilateur de variables déclarées mais non utilisées, initialisées mais non utilisées, et d'absence de code de retour attendu pour que ton programme compile proprement.
L'avertissement en ligne 101 concerne ta fonction
La ligne
Pour le reste, je n'ai pas tenté d'exécuter ni de déboguer ton code.
Dal
_______
Note importante : lorsque tu postes du code C sur le forum, fais le avec les balises "code c", afin que ton code soit correctement affiché par le forum, avec préservation de l'indentation, coloration syntaxique et numérotation des lignes. Sinon, ton post est illisible (là il a été corrigé par un modérateur qui a gentiment inséré les balises code sur ton code).
<code c>
copie-colle ton code entre deux ces deux balises
</code>
si tu ne veux pas taper les balises, tu les insères aussi en cliquant sur la flèche qui pointe vers le bas à gauche du bouton du forum servant à poster des images, et en choissant le langage "c", et tu n'as plus ensuite qu'à copier-coller ton code entre les deux balises, comme dans l'exemple ci-dessus.
Je ne vois pas bien de quelle boucle tu parles.
Sur tes 200 lignes de code, ton compilateur doit te donner des informations que tu ne devrais pas négliger.
Chez moi, ton code compilé avec gcc et les warnings, donne les problèmes suivants :
$ gcc -Wall 36043163.c 36043163.c: In function ‘payer_prix’: 36043163.c:67:6: warning: unused variable ‘camionnette’ [-Wunused-variable] char camionnette[10]; ^~~~~~~~~~~ 36043163.c:66:6: warning: unused variable ‘camion’ [-Wunused-variable] char camion[10]; ^~~~~~ 36043163.c:65:6: warning: unused variable ‘voiture’ [-Wunused-variable] char voiture[10]; ^~~~~~~ 36043163.c:64:5: warning: variable ‘paye’ set but not used [-Wunused-but-set-variable] int paye=0; ^~~~ 36043163.c: In function ‘montant_total_cumule’: 36043163.c:114:14: warning: unused variable ‘pct’ [-Wunused-variable] {int s,pv,pc,pct; ^~~ 36043163.c:114:11: warning: unused variable ‘pc’ [-Wunused-variable] {int s,pv,pc,pct; ^~ 36043163.c:114:8: warning: unused variable ‘pv’ [-Wunused-variable] {int s,pv,pc,pct; ^~ 36043163.c: In function ‘afficher_liste’: 36043163.c:142:10: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘vehicule {aka struct <anonymous>}’ [-Wformat=] printf("%s%d\t",tmp->val,tmp->val); ^ 36043163.c:142:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘vehicule {aka struct <anonymous>}’ [-Wformat=] printf("%s%d\t",tmp->val,tmp->val); ^ 36043163.c: At top level: 36043163.c:146:1: warning: return type defaults to ‘int’ [-Wimplicit-int] main() ^~~~ 36043163.c: In function ‘montant_total_cumule’: 36043163.c:121:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ 36043163.c: In function ‘vehicule_plus_passe’: 36043163.c:101:4: warning: ‘nv’ is used uninitialized in this function [-Wuninitialized] if((nv>nc)&&(nv>nct)) ^ 36043163.c:101:4: warning: ‘nc’ is used uninitialized in this function [-Wuninitialized] 36043163.c:101:12: warning: ‘nct’ may be used uninitialized in this function [-Wmaybe-uninitialized] if((nv>nc)&&(nv>nct)) ~~~~~~~^~~~~~~~~~ 36043163.c: In function ‘montant_total_cumule’: 36043163.c:119:4: warning: ‘s’ may be used uninitialized in this function [-Wmaybe-uninitialized] printf("le prix total cumule jusqua lors est%d",s); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Les avertissements concernant les lignes 142, 101 et 119 signalent en fait de grosses erreurs dans ton code, que tu devrais corriger, et tant qu'à faire, règle aussi les autres problèmes signalés par le compilateur de variables déclarées mais non utilisées, initialisées mais non utilisées, et d'absence de code de retour attendu pour que ton programme compile proprement.
L'avertissement en ligne 101 concerne ta fonction
vehicule_plus_passe(), et la ligne 2 dans l'extrait de code ci-dessous, que tu as programmé comme cela :
void vehicule_plus_passe(listvehicule *l,vehicule *v) {int nv,nc,nct; char voiture[10]; char camion[10]; char camionnette[10]; if((nv>nc)&&(nv>nct)) printf("le type de vehicule le plus passe est%s",voiture); else if((nc>nv)&&(nc>nct)) printf("le type de vehicule le plus passe est%s",camion); else if((nct>nv)&&(nct>nc)) printf("le type de vehicule le plus passe est%s",camionnette); printf("le nombre de voiture paye est %d",nv); printf("le nombre de camion paye est %d",nc); printf("le nombre de camionnette est%d",nct); }
La ligne
int nv,nc,nct;déclare 3 variables de type
int, qui ne sont pas initialisées à quoi que ce soit par la suite du code. Par conséquent, ces variables peuvent contenir n'importe quoi qui se trouve en mémoire, et quand en lignes 6, 9 et 12 tu effectues des comparaisons du contenu de ces variables, tu compares ... n'importe quoi avec ... n'importe quoi :-)
Pour le reste, je n'ai pas tenté d'exécuter ni de déboguer ton code.
Dal
_______
Note importante : lorsque tu postes du code C sur le forum, fais le avec les balises "code c", afin que ton code soit correctement affiché par le forum, avec préservation de l'indentation, coloration syntaxique et numérotation des lignes. Sinon, ton post est illisible (là il a été corrigé par un modérateur qui a gentiment inséré les balises code sur ton code).
<code c>
copie-colle ton code entre deux ces deux balises
</code>
si tu ne veux pas taper les balises, tu les insères aussi en cliquant sur la flèche qui pointe vers le bas à gauche du bouton du forum servant à poster des images, et en choissant le langage "c", et tu n'as plus ensuite qu'à copier-coller ton code entre les deux balises, comme dans l'exemple ci-dessus.