Exercice langage C corrigé les tableaux de pointeurs

Exercice 1

a) Représenter graphiquement la mémorisation des deux variables NOM1 et NOM2.

b) Pour trier les chaînes du tableau de pointeurs, il faut uniquement changer les pointeurs. La durée d’une opération d’échange est constante, peu importe la longueur des chaînes.

Pour trier le tableau de chaînes de caractères, il faut changer tous les caractères des chaînes un à un. La durée d’une opération d’échange est dépendante de la longueur des chaînes de caractères.

Pour des chaînes de caractères d’une longueur ‘normale’, le tri d’un tableau de pointeurs est donc certainement plus rapide que le tri d’un tableau de chaînes de caractères.

Exercice 2

#include <stdio.h>
main()
{
 /* Tableaux de pointeurs sur des chaînes de caractères */
  char *MFRAN[] = {"\aErreur d'entrée !", "janvier", "février",
                  "mars", "avril", "mai", "juin", "juillet", 
                  "août", "septembre", "octobre", "novembre", 
                  "décembre"}; 
 char *MDEUT[] = {"\aEingabefehler !", "Januar", "Februar",
                  "März", "April", "Mai", "Juni", "Juli",
                  "August", "September", "Oktober", "November", 
                  "Dezember"};
 int JOUR, MOIS, ANNEE; /* données pour la date */
 int CORRECT; /* indicateur logique: */
              /* vrai si la date entrée est correcte */
 /* Saisie des données */
 do
 {
  printf("Introduire le jour, le mois et l'année : ");
  scanf("%d %d %d", &JOUR, &MOIS, &ANNEE);
  CORRECT=1;
  if (JOUR<0||JOUR>31||MOIS<0||MOIS>12||ANNEE<0||ANNEE>3000)
     {
      CORRECT=0;
      puts(MFRAN[0]);
      puts(MDEUT[0]);
     }       
 } 
 while (!CORRECT);
 /* Affichage des dates */
 printf("Luxembourg, le %d%s %s %d \n",
 JOUR, (JOUR==1)?"er":"", MFRAN[MOIS], ANNEE); 
 printf("Luxemburg, den %d. %s %d \n",JOUR, MDEUT[MOIS], ANNEE);
  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 *