Tri de ligne (orde choisit)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 570 fois - Téléchargée 31 fois

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

Ajouter un commentaire Commentaires
Messages postés
5
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
23 avril 2004

salut a tout ,
j'ai un probleme a resoudre:
au site suivant j'ai trouvé un programme qui traite les fichiers textes (www.up.univ-mrs.fr/wcpp/V1/WinTD/TD20.pdf),alors j'aimerai trier les mots d'un fichier selon leurs nombre d'occurences apres suppression des mots vides (article , adjectifs , ponctuation.......)
c.a.d que que j'aimerai ajouté au code source qui existe au site cité
une FONCTION ecrite en VISUEL C++ QUI VA ME PERMETTRE de trier un fichier texte quelquanque selon L'ORDRE ALPHABETIQUE DES MOTS
est merci a tout ( j'attend vous reponse avec plaisir

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.