Aide langage C

Résolu
Bonjour,

Qui peut m'aider à faire ça s'il vous plaît :

Ecrire un programme C qui permet de stcker un nombre de chaine de caractère de taille maximal 10 dans un tableau D de dimension fini. et les affichers

Merci d'avance.

Cordialement,
CALiiMERO
Configuration: Windows Vista
Internet Explorer 7.0

12 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut,
    Oui, on peut t'aider, mais pour cela faut que tu postes ce que tu as commencé à faire ou dire ce que tu comprends pas.
    1. Je n'ai rien commencer encore j'ai un peu du mal puisque je viens de commencer à apprendre ce langage.
      1. #include <stdin.h>
        #include <stdio.h>
        #define MAX=10
        main() {
        char D[MAX]
        1. j'ai un problème avec la chaine de caractère que l'utilisateur de programme va insérer, j'ai mis :
          printlf ("Entrer une chaine de caractère")
          1. Contributeur
            Oui il faut faire une boucle.
            Pour lire un mot c'est scanf("%9s",&mot);
            Une boucle c'est avec while.
            Et le tableau c'est char tab[NB_ELT][10];
            1. #include <stdin.h>
              #include <stdio.h>

              #define MAX=10
              main()
              {
              char D[MAX];
              int L; /* L est la longueur de la chaine de caractère */
              int C; /* C est le Caractère d'entrer */
              int i; /* i est un compteur (indice) */
              printf (''Entrer une chaine de caractère'')
              L=0;
              char s[];
              for (i=0; 0<MAX-1; ++i)
              {
              while (C=getchar()!=EOF && C!=\n')
              s[i]=C;
              }
              if ( C == '\n')
              {
              s[i]=C;
              ++i;
              }
              s[i]='\0';
              L=i;
              if (L <= 10)
              D=s;

              printf (''%s'', D)
              }
              1. Voilà ce que j'ai pu mettre comme programme si vous voulez le corriger, merci beaucoup
                1. Contributeur
                  Tu n'as pas utilisé un char à deux dimensions. Donc ça peut pas marcher.
                  Pas de signe égal dans le define. Juste #define MAX 10
                  #include <stdin.h> n'existe pas.
                  char s[]; ne peut pas être utilisé puisque la dimension n'est pas spécifiée à la compilation.

                  Voici l'algorithme :
                  Tab : tableau de chaîne de caractères (en C : char tab[NB_ELT][MAX];)
                  i : entier
                  Pour i de 0 à NB_ELT - 1 faire :
                      Lire tab[i]  //maximum MAX lettre
                  Fin Pour
                  
                  Pour i de 0 à NB_ELT - 1 faire :
                      Afficher tab[i]
                  FinPour
                  

                  T'as juste à le coder en C. Et tu n'as pas besoin d'autres variables.
                  La prochaine fois, utilise la balise de conservation du code (à droite du bouton souligner) et respecte l'indentation comme dans mon algorithme. C'est beaucoup plus agréable à lire :-).
                  1. #include <stdio.h>
                    #define MAX 10
                    
                    main() {
                    char[NB_ELT] [MAX];
                    int i;
                    for (i=0; i< NB_ELT – 1; ++i)
                    scanf([i])
                    for (i=0; i< NB_ELT – 1; ++i)
                    printf ([i])
                    }


                    je crois que j'ai eu du mal à traduire les deux mots :
                    Lire tab[i]
                    Afficher tab[i]

                    J'attend votre aide :)
                    Merci beaucoup.
                    1. Contributeur
                      Ah, c'est beaucoup beaucoup mieux.
                      Tu as oublié de définir NB_ELT qui contient le nombre de mots que tu peux caser dans le tableau.
                      Je te mets en gras toutes les modifications que j'ai apportées.

                      #include <stdio.h>
                      #define MAX 10
                      #define NB_ELT 5
                      
                      int main(void) {
                      char tab[NB_ELT][MAX+1]; //il  ne faut pas oublier de stocker le '\0' final et le nom du tableau
                      int i;
                      for (i=0; i< NB_ELT; ++i) //pas besoin de mettre - 1 puisqu'il s'agit d'inégalité stricte
                           scanf("%9s",tab[i]); //j'ai mis 9 pour éviter les débordements, tu peux l'enlever si tu ne comprends pas.
                      
                      for (i=0; i< NB_ELT; ++i)
                         puts(tab[i]); // ou printf("%s\n",tab[i]);
                      
                      return 0;
                      }
                      

                      Cdlt