Tri de ligne (orde choisit)

Contenu du snippet

ben le titre l'explique un peu,enfait c'etait a titre purement academique rien de special donc !

Source / Exemple :


#include <stdio.h>
#include <conio.h>
#include <string.h>
#define max 100
struct ligne {
		char l[max];

	} ;
int main () {
	struct ligne parag[max];
	char a,prior[27]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

	void priority (char *);
	void saisie (struct  ligne * parag);
	void tri (struct  ligne * parag,char *);
	void affichage (struct  ligne * parag);

	
	printf("voulez vous changer l'ordre de priorite o/n\n(l'ordre alphabetique par default)");
	a=getch();
	printf("\n");
	if (a=='o')
		priority(prior);
	saisie(parag);
	flushall();
	tri(parag,prior);
	affichage(parag);

	getch();
	return 0;
}

/*********************priority********************************/

void priority (char * tab) {
	int i=0,k;
	char c;

	printf("\n\nentrez sucsessivement l'ordre souhaite du tri :\n\n");
	for (;i<=25;i++)
	{
		do
		{
			c=getche();
			k=0;
			while ((k<=i-1)&&(*(tab+k)!=c))
				k++;
			if (*(tab+k)==c)
				printf("\b\a");

		} while (*(tab+k)==c);
		printf(" ");

  • (tab+i)=c;
} printf("\n\n"); } /******************************end priority*******************/ /*********************saisie**********************************/ void saisie (struct ligne * tab) { char c[max]; int i=0; printf("\n\nentrer votre paragrephe chaque fois que vous terminer une\n"); printf("ligne apuier sur entre,pour terminer la saisie enter une ligne vide\n"); printf("\n\n**************************************\n\n"); do { gets(c); strcpy((tab+i)->l,c); i++; } while ((c[0]!='\0')||(i==max)); printf("******************************************\n\n"); } /*****************************end saisie************************/ /*******************************tri*****************************/ void tri (struct ligne * tab,char * pri) { char c[max]; int i=0,j,min,g=0,k=0; while (*(tab+i+1)->l!='\0') { min=i; j=i+1; while (*(tab+j)->l!='\0') { g=0; k=0; while ((g==0)&&(k<27)) { if (*(tab+j)->l==*(pri+k)) g=1; if (*(tab+min)->l==*(pri+k)) g=-1; k++; } if (g>0) min=j; j++; } strcpy(c,(tab+i)->l); strcpy((tab+i)->l,(tab+min)->l); strcpy((tab+min)->l,c); i++; } } /*************************end tri********************************/ /***************************affichage****************************/ void affichage (struct ligne * tab) { int i=0; printf("\n\n************le paragaraphe triee :**************\n\n"); while (*(tab+i)->l!='\0') { printf("%s\n",(tab+i)->l); i++; } printf("\n******************************************************\n"); } /***************************end affichage**************************/

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.