Exercice langage C corrigé accès aux chaines et aux caractères

Exercice 1

#include <stdio.h>
#include <string.h>
main()
{
 /* Déclarations */
 char MOT[10][50]; /* tableau de 10 mots à trier */
  char AIDE[50];  /* chaîne d'aide pour la permutation */
 int I;    /* rang à partir duquel MOT n'est pas trié */
 int J;    /* indice courant */
 int PMOT; /* indique la position du prochain mot */
           /* dans la suite lexicographique.        */

 /* Saisie des données */
 for (J=0; J<10; J++)
   {
    printf("Mot %d : ", J);
    gets(MOT[J]); /* ou :  scanf ("%s\n", MOT[J]); */ 
    }

 /* Tri du tableau par sélection directe du     */
 /* prochain mot dans la suite lexicographique. */
 for (I=0; I<9; I++)
    {
     /* Recherche du prochain mot à droite de A[I] */
     PMOT=I;
     for (J=I+1; J<10; J++)
        if (strcmp(MOT[J], MOT[PMOT]) < 0)
            PMOT=J;
     /* Echange des mots à l'aide de strcpy */
     strcpy(AIDE, MOT[I]);
     strcpy(MOT[I], MOT[PMOT]);
     strcpy(MOT[PMOT], AIDE);
    }

 /* Edition du résultat */
 printf("Tableau trié lexicographiquement :\n");
 for (J=0; J<10; J++)
     puts(MOT[J]);  /* ou :  printf("%s\n",MOT[J]); */
 printf("\n");
 return 0;
}

Exercice 2

#include <stdio.h>
main()
{
 /* Déclarations */
 int N;  /* nombre entré */
 char JOUR[8][9] = {"\aErreur!", "lundi", "mardi", "mercredi", 
                    "jeudi", "vendredi", "samedi","dimanche"};
  /* Saisie du nombre */
 printf("Entrez un nombre entre 1 et 7 : ");
 scanf("%d", &N);
 /* Affichage du résultat - pour perfectionnistes */
 if (N>0 && N<8)
     printf("Le %de%c jour de la semaine est %s.\n",
                                   N, (N==1)?'r':' ', JOUR[N]);
 else
     puts(JOUR[0]);
  return 0;
}

Exercice 3

#include <stdio.h>
main()
{
 /* Déclarations */
 char MOT[5][50]; /* tableau pour les 5 mots */
 int I;           /* indice courant */
 /* Saisie des mots */
 printf("Entrez 5 mots, séparés par des espaces :\n");
 /* Après le retour à la ligne, scanf lit */
 /* les 5 données à la fois. */
 for (I=0; I<5; I++)
     scanf("%s", MOT[I]);
 /* Affichage du résultat */
 for (I=4; I>=0; I--)
    printf("%s ", MOT[I]);
 printf("\n");
  return 0;
}

Exercice 4

#include <stdio.h>
#include <string.h>
main()
{
 /* Déclarations */
 /* Sujets et terminaisons */
 char SUJ[6][5]  = {"je","tu","il","nous","vous","ils"};
 char TERM[6][5] = {"e","es","e","ons","ez","ent"};
  char VERB[20]; /* chaîne contenant le verbe */
 int L;         /* longueur de la chaîne */
 int I;         /* indice courant */

 /* Saisie des données */
 printf("Verbe : ");
 scanf("%s", VERB);

 /* Contrôler s'il s'agit d'un verbe en 'er' */
 L=strlen(VERB);
 if ((VERB[L-2] != 'e') || (VERB[L-1] != 'r'))
  printf("\"%s\" n'est pas un verbe du premier groupe.\n",VERB);
 else
     {
      /* Couper la terminaison 'er'. */
      VERB[L-2]='';
      /* Conjuguer ... */
      for (I=0; I<6; I++)
          printf("%s %s%s\n",SUJ[I], VERB, TERM[I]);
      }
 return 0;
}

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *