Ajouter un commentaire

leomat
Tri chaine de caractères (en C)

Oyé oyé!

Me voici confronté à un problème que je n'arrive pas à résoudre.
Je dois tout simplement trier un tableau rempli de chaines de caractères, que je remplis moi-même.

Après je dois la trier par ordre alphabétique, mais il plante toujours lors de ce tri.

Voici mon code :

#include<stdio.h>

#define NBRMOTS 3
#define LGMOT 20

void tri_chaine_caract(char tableau[],int tabLength, int wordLength);

main()
{
	char tab[NBRMOTS][LGMOT];
	int i;
	char choix;
	
	printf("encodez une série de 3 mots! \n");
	
	for(i=0;i<NBRMOTS;i++)
	{
		printf("Mot %d : ", i);
		scanf("%s", tab[i]);
	}
	do
	{
		printf("appuyez sur 'r' pour effectuer le tri \n");
		printf("appuyez sur 'q' pour quitter \n\n");
		choix=getch();
		if(choix=='q')
		abort();
		else if(choix=='r')
		{
			tri_chaine_caract(tab,NBRMOTS,LGMOT);
		}
	}
	while(choix!='q' && choix!='r');
}

void tri_chaine_caract(char tableau[],int tabLength, int wordLength)
{
	int i,k;
	char temp[wordLength];
	
	for(i=0;i<tabLength;i++)
	{
		k=i;
		while((k>=0) || (strcmp(tableau[k],tableau[k-1]<0)))
		{
			temp=tableau[k]; 
			tableau[k]=tableau[k-1];
			tableau[k-1]=temp;
			k=k-1;
		}
	}
}

Alors, si je laisse le code comme ca, il me dit "16a.c:48: error: incompatible types in assignment". ceci est pour la ligne "temp=tableau[k];"

Maintenant si je la mets en commentaire, il compile bien, mais au moment de faire le tri, il plante...

Et je ne comprends pas pq :(

qqn saurait m'aider en cette période d'examens? ^^

Merci à vous

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 V     V  FFFF  V     V  ZZZZZ   QQQ   
V V F V V Z Q Q
V V FFF V V Z Q Q
V V F V V Z Q QQ
V F V ZZZZZ QQQQ
Q