lemedfr | Bonjour à vous tous, je suis sur un ex:
Ecrire un programme c qui lit une dizaine de mots dans un tableau puis trier ce tableau
selon le choix de l’utilisateur.
1 : selon la longueur des mots
2 : selon la précédence lexicographique
3 : selon le nombre de voyelle par mot
J'ai déjà fait la strucuture du programme mais j'arrive pas à trier les elements, je sais que ça doit se faire avec qsort mais je ne sais pas comment, j'ai beaucoup cherché sur le forum, j'ai trouvé mais je ne comprends pas le langage standard (char*stringblabla bla bla.... je n'ai trouvé aucun exemple donc si vous pouvez m'aider je vous serai reconnaissant! merci
Voilà mon code
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main()
- { //exercie base de données NOTES
- int n=0, ne=0, i=0, j=0,choix=0, p;
- char MOTS[100][100], var[100];
- do {
- printf("Introduire le nombre des mots " );
- scanf("%d",&n);
- fflush(stdin);
- if (n<=1)
- printf("le nombre des mots est incorrect \n" );
- }
- while (n<=1);
- for (i=0;i<n;i++){// saisie mots
- printf("Quel est la mot %d:",(i+1));
- gets(MOTS[i]);
- fflush(stdin);
- }
- do{ //controle saisie navigation menu
- system("cls" ); // clean screen
- printf("\n\n\t\t\t\t*****MENU RESULTAT*****\n\n\n1- Selon longueur de mots\n2- Selon précédence lexicographique\n3- Selon nombre de voyelles par mots\n\t\t\t\tChoix: " );
- scanf("%d",&choix);
- fflush(stdin);
- if ((choix<=0)||(choix>=5)) printf("Choix incorrect, merci de verifier\n" );
- }
- while ((choix<=0)||(choix>=5));
- switch (choix){
- case 1: { // SELON LONGUEUR
- system("cls" );
- printf("Vous avez choisit d'afficher la meilleure note pour une matiere donnee\n" );
- fflush(stdin);
- i=0;j=0; p=1;//initialisation des param
- for (i=0;(i<n-1);i++){
- p=0;j=n-1;
- for (j=n-1;(j>i);j--){
- if (strcmp(MOTS[j-1],MOTS[j])>=0){
- strcpy(var,MOTS[j-1]);
- strcpy(MOTS[j-1],MOTS[j]);
- //MOTS[j-1]=MOTS[j];
- strcpy(MOTS[j],var);
- //MOTS[j]=var;
- p=1;
- }
- }
- if (!p) break;
- }
- i=0;
- for (i=0;(i<n);i++){
- printf("Mot num %d = %s\n",i+1,MOTS[i]);
- }
- break;
- }
- case 2:{ // ordre alphabetique
- system("cls" );
- qsort()
- }
- case 2:{ // par nombre de voyelles
- system("cls" );
- //...
- }
- }
- return 0;
- }
|
Message édité par gilou le 07-11-2013 à 20:58:09
|