Probleme dico en C

Fermé
hellojcr - 17 nov. 2008 à 21:15
 hellojcr - 17 nov. 2008 à 21:24
Bonjour,
j'ai fais un petit programme qui doit trier 3 mots que je rentre à la main
mon soucis et que lorsque j'exécute avec cygwin il trie les mots mais lors de l'affichage le dernier mot est remplacé par un smiley...???

voilà le programme, je ne comprends pas mon erreur.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
/*ca ne marche pas, je ne comprends pas pourquoi mais je vous l'envoie quand même..*/
int i,ord, yapermut;
char t[3][20];
char ordre[3][20];
char temp[1][20];

/*je rentre les lettres dans le tableau*/
for (i=0 ; i<3; i++) {
printf("entrez un mot: ");
scanf("%s", t[i]);
}
yapermut = 1;
while (yapermut ==1) {
for (i=0;i<2;i++) {
ord = strcmp(t[i],t[i+1]);
if (ord<0) {
strcpy(ordre[i], t[i]);
yapermut = 0;
}
else if (ord>0) {
strcpy(ordre[i], t[i+1]);
strcpy(temp[1], t[i+1]);
strcpy(t[i+1], t[i]);
strcpy(t[i], temp[1]);
yapermut =1;
}
else if (ord == 0 && strlen (t[i]) < strlen (t[i+1])) {
strcpy (ordre [i] , t[i]);
yapermut = 0;
}
else {
strcpy(ordre [i], t[i+1]);
yapermut = 1;
}
}
}
for (i=0;i<3;i++) {
printf("%s\n", ordre[i]);
}

return 0;
}
A voir également:

2 réponses

Utilisateur anonyme
17 nov. 2008 à 21:18
Qu'est ce que dis ton compilateur? ça nous fera gagner du temps
0
cygwin me dit absolument rien , a part le "no new line at the end of the file" habituel.
0
Utilisateur anonyme
17 nov. 2008 à 21:20
char temp[1][20]... c'est un peu bête non? pourquoi pas faire char temp[20]?
0
si j'enleve ça, ca me met deux erreurs au niveau des lignes ou j'utilise le temp "passing arg 1of 'strcpy' makes pointer from integer without a cast"
ca me parle de pointeur mais je n'ai pas encore vu ça.
0