Un petit prog : cherchez l'erreur !

Résolu
EL barto ! Messages postés 124 Statut Membre -  
EL barto ! Messages postés 124 Statut Membre -
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;
}

18 réponses

williom Messages postés 234 Statut Membre 51
 
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 { }.
0
EL barto ! Messages postés 124 Statut Membre 6
 
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 !

:)
0
chuka Messages postés 980 Statut Membre 378
 
Salut,
sur mon PC il marche ce code.....
@+
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
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. ^^
0
williom Messages postés 234 Statut Membre 51
 
oui, merci c'est ce que j'me disais...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
EL barto ! Messages postés 124 Statut Membre 6
 
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à .
0
EL barto ! Messages postés 124 Statut Membre 6
 
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 ?
0
chuka Messages postés 980 Statut Membre 378
 
ben gcc... code collé dans notepad....
Rien de flambant comme tu peux le voir....
0
EL barto ! Messages postés 124 Statut Membre 6
 
Non, la je comprends pas , moi sj'utilise dev ++

tu as beaucoup d'add on installés sur ton compilo ?
0
chuka Messages postés 980 Statut Membre 378
 
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
0
EL barto ! Messages postés 124 Statut Membre 6
 
quand je fais ça, il m'ouvre block::code.
0
EL barto ! Messages postés 124 Statut Membre 6
 
Mais non bon sang, ça ne marche pas :(

Williom est ce que tu fontionne sous dev++ ?
tu l'as essayé toi ?
0
chuka Messages postés 980 Statut Membre 378
 
Tu dois avoir une clé de registre qui fait ouvrir code::block....
humm...
T'as pas linux??
0
EL barto ! Messages postés 124 Statut Membre 6
 
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.
0
chuka Messages postés 980 Statut Membre 378
 
lance le en debbug...voir si y'a pas un truc louche....
0
EL barto ! Messages postés 124 Statut Membre 6
 
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
0
EL barto ! Messages postés 124 Statut Membre 6
 
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.
0
chuka Messages postés 980 Statut Membre 378
 
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???
0
EL barto ! Messages postés 124 Statut Membre 6
 
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.
0