Posez votre question Signaler

Un petit prog : cherchez l'erreur ! [Résolu]

EL barto ! 125Messages postés 25 octobre 2008Date d'inscription - Dernière réponse le 28 oct. 2008 à 12:43
Bonjour,
Salut, voilà, j'ai fait un programme pour trier des mots d'après un ordre alphabétique.
Mais, il s'arrête juste après que je saisi ces mots.
on peut rentrer 11 mots maxi, d'une longueur maximale de 26caratères.
Un fois saisi, on valide, et le programme est sensé les re-afficher dans l'ordre alphabétique.
Voici le code il ne fait qu'un 20 taines de ligne, et il est très compréhensible.
C'est à parti du test N°3 que ça ne marche plus. Je rentre effectivement des chaines de caractère mais après avoir appuyé sur "Enter" le curseur passe tout simplement à la ligne suivante comme si le programme n'avait pas de suite
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LG_MOTS 26
#define NB_MOTS 11

int main(int argc, char *argv[])

{ 
printf ("1\n");                                   /* Test N°1*/ (réussi)
char mots [NB_MOTS] [LG_MOTS+1] ;
char tempo [LG_MOTS+1] ;
int i,j ;
printf ("entrer une phrase composé de %d mots\n ", NB_MOTS);

/* LECTURE DES MOTS 0 TRIER*/
   
printf ("2\n");                                                  /* Test N°2*/ (réussi)
for (i=0 ; i<NB_MOTS ; i=i+1)
    scanf ("%s", &mots[i][0]);

printf ("3\n");                           /* Test N°3*/ (échec)


 /*Séquence de tri */


for (i=0 ; i<NB_MOTS-1 ; i=i+1)
    for (j=i+1; j<NB_MOTS ; j=j+1)
        if (strcmp (&mots[i][0], &mots[j][0])>0)
           { strcpy(tempo,&mots[i][0]);
             strcpy(&mots[i][0], &mots[j][0]);
             strcpy(&mots[j][0],tempo);
           } 
          

                  /* Séquence d'affichage du résultat*/
    

printf ("Voici les mots tries :\n");
    for (i=0 ; i<NB_MOTS ; i=i+1)
    puts (&mots[i][0]);
  getchar();
  return 0;
}

Lire la suite 

Un petit prog : cherchez l'erreur »

19 réponses
Réponse
+0
moins plus
bonjour,
je ne suis pas très fort en C, donc je vais dire bêtement qu'il faut ouvrir et fermer les boucles for par { }.
Ajouter un commentaire
Réponse
+0
moins plus
Je viens d'essayer, ça ne marche pas.l'as tu essayé toi ?
moi aussi je suis pas fort, la preuve, c'est que ce bout de code c'est un recopiage d'un manuel !

:)
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
sur mon PC il marche ce code.....
@+
Ajouter un commentaire
Réponse
+0
moins plus
Non pas besoin d'accolade pour le for puisqu'il n'y a qu'une instruction ;)
Sinon, j'ai essayé ton code sur ma machine, et il marche. ^^
williom- 27 oct. 2008 à 23:17
oui, merci c'est ce que j'me disais...
Ajouter un commentaire
Réponse
+0
moins plus
Attents !!!!
NE T'EN VA PAS !!!

qu'est ce que tu utilise comme PC !!!???
non je rigole, c'est vrai ? tu rentre 10 mots, et ça te les réordonne !
parce que moi je sais des mots, et ça s'arrêt là .
Ajouter un commentaire
Réponse
+0
moins plus
C'est pas possible je vous crois pas !!! allé soyez simpa les mecs !!!

c'est pas vrai, il ne vous affiche rien une fois que vous avez rentré les mots.
Quest ce que vous utilié comme compilo ?
Ajouter un commentaire
Réponse
+0
moins plus
ben gcc... code collé dans notepad....
Rien de flambant comme tu peux le voir....
Ajouter un commentaire
Réponse
+0
moins plus
Non, la je comprends pas , moi sj'utilise dev ++

tu as beaucoup d'add on installés sur ton compilo ?
Ajouter un commentaire
Réponse
+0
moins plus
Ben non...
Voici la manip, essaye de faire pareil voir si ca marche comme ca:
Ouvre notepad->colle ton code->enregistre le (par exemple test.c)->ouvre l'invite des commande->(met toi dans le repertoire où tu as enregistré le fichier test.c) gcc -c test.c->gcc test.o -o test.exe->test.exe
Ajouter un commentaire
Réponse
+0
moins plus
quand je fais ça, il m'ouvre block::code.
Ajouter un commentaire
Réponse
+0
moins plus
Mais non bon sang, ça ne marche pas :(

Williom est ce que tu fontionne sous dev++ ?
tu l'as essayé toi ?
Ajouter un commentaire
Réponse
+0
moins plus
Tu dois avoir une clé de registre qui fait ouvrir code::block....
humm...
T'as pas linux??
Ajouter un commentaire
Réponse
+0
moins plus
et non. mais enfin, c'est pas normal, je suis sous dev++, d'habitude quand je tape un code ça compile et ça lance dans un fenêtre de commande. La j'ai bien la fenêtre, y' ça :

1
entrer une phrase composé de 11 mots
2
(puis je rentre des caractères style :" lskdjf hdjsfhsd qoihlq") j'appuie sur "entrer"

et le curseur passe à la ligne suivant et clignote, et c'est tout.
Ajouter un commentaire
Réponse
+0
moins plus
lance le en debbug...voir si y'a pas un truc louche....
Ajouter un commentaire
Réponse
+0
moins plus
Non, y'a rien avec le debugage ( 0 error et 0 warning ).. C'est à n'y rien comprendre. et ça me rend fou ce truc !

Dis moi exactement ce que tu fais et ce que ça t'affiche stp
Ajouter un commentaire
Réponse
+0
moins plus
Bon ecoutez, je vais pas me prendre la tête ce soir, parce que ça peut durer. laissez tombé, merci en tout cas d'avoir essayé de comprendre avec moi.
Bonne soirée à tous.
Ajouter un commentaire
Réponse
+0
moins plus
Ben je fais comme le poste N9....
et j'ai bien le resultat voulu
1
entrer une phrase composé de 11 mots
2
ljfdl
dlfk
dfmg
shdfkls
sdfjsfd
sklfsldkfj
ksdf
lsk
3
..
..
.
où tout est rangé....Tu tape bien entrer chaque mot???
Ajouter un commentaire
Réponse
+0
moins plus
HA HA HA HA !!!!!


Ca y est je le suis devenu !! complètement débile !!!
merci !

Bon ben je crois que je vais mereposer quelque temps.
Ajouter un commentaire
Ce document intitulé « Un petit prog : cherchez l'erreur ! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?