Probleme de C
Résolu/Fermé
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
-
19 nov. 2008 à 14:11
marouendjerbien Messages postés 35 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 19 novembre 2008 - 19 nov. 2008 à 19:40
marouendjerbien Messages postés 35 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 19 novembre 2008 - 19 nov. 2008 à 19:40
17 réponses
shinji7800
Messages postés
297
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2010
47
19 nov. 2008 à 14:17
19 nov. 2008 à 14:17
Bonjour,
laisse moi 5 min je jette un oeil :)
laisse moi 5 min je jette un oeil :)
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:19
19 nov. 2008 à 14:19
Merci
shinji7800
Messages postés
297
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2010
47
19 nov. 2008 à 14:22
19 nov. 2008 à 14:22
Je veux pas dire de betises , mais je crois que tes "else" sont en causes,
je fais quelques tests
je fais quelques tests
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
19 nov. 2008 à 14:24
19 nov. 2008 à 14:24
Salut,
J'ai jeté un coup rapidement. Dis-moi si ceci marche.
Sinon, tu peux utiliser plutôt des switch, au lieu de if pour augmenter la lisibilité. Enfin, c'est pas ça qui fait que ça marche mieux ^^.
Cdlt
J'ai jeté un coup rapidement. Dis-moi si ceci marche.
Sinon, tu peux utiliser plutôt des switch, au lieu de if pour augmenter la lisibilité. Enfin, c'est pas ça qui fait que ça marche mieux ^^.
Cdlt
#include <stdio.h> int main (void) { int v[10],i,a,b,c; printf("Veuillez entrer des entiers\n"); for(i=0;i<10;i++) { printf("Entrer la valeur de la case %d: ",i+1); scanf("%d",&v[i]); } a=b=c=0; for(i=0;i<9;i++) { if(v[i]==v[i+1]) { a++; } if(v[i]<v[i+1]) { b++; } if (v[i]>v[i+1]) { c++; } } if(a==9 && b==0 && c==0) { printf("Les nombres sont egaux"); } else { if(a>=0 && b!=0 && c==0) { printf("Les nombres sont croissants"); } else { if(a>=0 && b==0 && c!=0) { printf("Les nombres sont decroissats"); } else { if(a!=0 && b!=0 && c!=0) { printf("Les nombres sont differents\n"); } } } } return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
shinji7800
Messages postés
297
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2010
47
19 nov. 2008 à 14:29
19 nov. 2008 à 14:29
petite precision tu n'initialise pas les valeurs de a, b, c
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:31
19 nov. 2008 à 14:31
J'ai oublier.....
Et je vien de trouver une autre erreur pour le else final les != faut les mettre en >=
Et je vien de trouver une autre erreur pour le else final les != faut les mettre en >=
sennin
Messages postés
286
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
9 avril 2011
35
19 nov. 2008 à 14:34
19 nov. 2008 à 14:34
Peut être un cas où B n'est jamais incrémenté? du coup il ne rentre pas dans la 3eme condition...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
19 nov. 2008 à 14:36
19 nov. 2008 à 14:36
T'as testé le code que je t'ai donné plus haut ?
Cdlt
Cdlt
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:37
19 nov. 2008 à 14:37
fiddy j'ai corriger dans le tien comme ce que tu avais corriger etait bon
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
19 nov. 2008 à 14:41
19 nov. 2008 à 14:41
Ce que je veux dire, c'est que sur ma machine ça marche.
Donc, qu'est-ce qui ne va pas dans le code au final ?
Donc, qu'est-ce qui ne va pas dans le code au final ?
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:43
19 nov. 2008 à 14:43
Bin quand dans le dernier else a et b et c =!=0 sa bugguais sa n'affichais rien
maintenant que j'ai modifier de != en sa >= sa va
il tourne bien la
maintenant que j'ai modifier de != en sa >= sa va
il tourne bien la
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:44
19 nov. 2008 à 14:44
en tout cas MERCI BEAUCOUP de votre aide^^
shinji7800
Messages postés
297
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2010
47
19 nov. 2008 à 14:47
19 nov. 2008 à 14:47
d'après ce que je vois, ... tu est trop restrictif sur tes tests,
tu coups tu ne rentre pas dans tes if car au moment ou tu incrémente a, b ou c tu va jusqu'a la case 11, de ton tableau soit une valeur que tu connais pas ... du coup sa peu soit incrementé a, b ou c
par exemple la suite 1,2,3,4,5,6,7,8,9,10
-> a=0, b=9 et c=1 et du coup tu ne peux entrer dans aucun "if"
je sais pas si j'ai été assez clair,
j'essaye de corriger ton programe
tu coups tu ne rentre pas dans tes if car au moment ou tu incrémente a, b ou c tu va jusqu'a la case 11, de ton tableau soit une valeur que tu connais pas ... du coup sa peu soit incrementé a, b ou c
par exemple la suite 1,2,3,4,5,6,7,8,9,10
-> a=0, b=9 et c=1 et du coup tu ne peux entrer dans aucun "if"
je sais pas si j'ai été assez clair,
j'essaye de corriger ton programe
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:51
19 nov. 2008 à 14:51
Shinji7800
Je vien de tester la suite de nombre que tu as marquer 1 2 3 4 5 6 7 8 9 10
Le programme me dis qu'il est croissant
Je vien de tester la suite de nombre que tu as marquer 1 2 3 4 5 6 7 8 9 10
Le programme me dis qu'il est croissant
shinji7800
Messages postés
297
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2010
47
19 nov. 2008 à 14:55
19 nov. 2008 à 14:55
en faite je parlais de ton programme initial :)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
19 nov. 2008 à 14:52
19 nov. 2008 à 14:52
Re,
J'en ai profité pour épurer ton programme ;)
Cdlt
J'en ai profité pour épurer ton programme ;)
#include <stdio.h> #define MAX 10 int main (void) { int v[MAX],i,a,b,c; puts("Veuillez entrer des entiers"); for(i=0;i<MAX;i++) { printf("Entrer la valeur de la case %d: ",i+1); scanf("%d",&v[i]); } a=b=c=0; for(i=0;i<MAX-1;i++){ if(v[i]==v[i+1]) a++; else if(v[i]<v[i+1]) b++; else if (v[i]>v[i+1]) c++; } if(a==MAX-1 && b==0 && c==0) puts("Les nombres sont egaux"); else if(b && !c) puts("Les nombres sont croissants"); else if(!b && c) puts("Les nombres sont decroissants"); else puts("Les nombres sont differents"); return 0; }
Cdlt
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:54
19 nov. 2008 à 14:54
merci beaucoup
shinji7800
Messages postés
297
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
30 septembre 2010
47
19 nov. 2008 à 14:54
19 nov. 2008 à 14:54
#include <stdio.h> void main () { int v[10],i,a=0,b=0,c=0; printf("Veuillez entrer des entiers\n"); for(i=0;i<10;i++) { printf("Entrer la valeur de la case %d: ",i+1); scanf("%d",&v[i]); } for(i=0;i<9;i++) { if(v[i]==v[i+1]) a++; else if(v[i]<v[i+1]) b++; else if (v[i]>v[i+1]) c++; } printf("a=%d",a); printf("b=%d",b); printf("c=%d\n",c); if(a==9 && b==0 && c==0) printf("Les nombres sont egaux\n"); else if(a>=0 && b!=0 && c==0) printf("Les nombres sont croissants\n"); else if(a>=0 && b==0 && c!=0) printf("Les nombres sont decroissants\n"); else if(a>=0 && b>=0 && c>=0) printf("Les nombres sont differents\n"); system("pause"); }
j'arrive trop tard :D
pense a le mettre en resolu
StrikerX
Messages postés
11
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
19 nov. 2008 à 14:57
19 nov. 2008 à 14:57
Merci a vous 2 de bien avoir voulu me consacrer un peu de votre temps ;)
marouendjerbien
Messages postés
35
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
19 novembre 2008
1
19 nov. 2008 à 19:15
19 nov. 2008 à 19:15
Bonjour,
ton programme est-il résolu ??
ton programme est-il résolu ??
tapsaid
Messages postés
60
Date d'inscription
samedi 26 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2009
1
19 nov. 2008 à 19:24
19 nov. 2008 à 19:24
initialise d'abord a,b et c puis compile et essai encore.en fait si tu n'initialise pas les variables non globales elles ont des valeurs qui sont aléatoires,c'est peut etre à cause de cela.
marouendjerbien
Messages postés
35
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
19 novembre 2008
1
19 nov. 2008 à 19:40
19 nov. 2008 à 19:40
je veux juste savoir si ça donne du résultats correctes ;
si ça marche c'est bien, sinon je vais essayer de faire un programme .
si ça marche c'est bien, sinon je vais essayer de faire un programme .