Lest tableau

salut c'est encore moi et j'ai eu le malheur de découvrir les pointeurs et les tableaux .

j'en suis a l'exercice 1

https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15540-les-tableaux

j'ai tenté un truc un peu au hasard je savait vraiment pas quoi faire.

voila ma compil que j'ai essayé d'indété.

#include <stdio.h>
#include <stdlib.h>

int sommeTableau(int tableau[], int tailleTableau);


int main()

{

    int tableau[4] ={5,3}

  int  somme = 0,i = 0;

  for (i = 0 ; i < 4 ; i++)

        somme += tableau[i];


printf("la somme des valeur du tableau est %d"):




    return somme;
}


Merci

4 réponses

  1. Contributeur
    L'indentation ce n'est toujours pas ça...
    Que n'arrives-tu pas avec l'indentation ?

    int tableau[4] ={5,3}
    Il manque un ';'.

    printf("la somme des valeur du tableau est %d"):
    C'est un ';' en fin d'instruction pas un ':'. De plus, il manque l'argument que tu souhaites afficher (et qui se rapporte à ton %d).

    return somme;
    Ce n'est pas return somme; mais return 0; (ou return EXIT_SUCCESS;).

    Si tu veux un return somme; il faut faire une fonction.

    Cdlt,
    1. MDR je me suis probablement beacoup foiré je voulais justement faire une fonction :(
      1. re après avoir fais quelque test et réviser les cour cela me semblait juste mais il y a plein d'érreur;

        D:\Users\martin\Desktop\programme\EXO1.c||In function 'main':|
        D:\Users\martin\Desktop\programme\EXO1.c|7|error: parameter 'tableau' is initialized|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: initialization makes pointer from integer without a cast [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: (near initialization for 'tableau') [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: excess elements in scalar initializer [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: (near initialization for 'tableau') [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: excess elements in scalar initializer [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: (near initialization for 'tableau') [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: excess elements in scalar initializer [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|warning: (near initialization for 'tableau') [enabled by default]|
        D:\Users\martin\Desktop\programme\EXO1.c|7|error: parameter 'somme' is initialized|
        D:\Users\martin\Desktop\programme\EXO1.c|8|error: expected declaration specifiers before 'somme'|
        D:\Users\martin\Desktop\programme\EXO1.c|9|error: expected declaration specifiers before 'printf'|
        D:\Users\martin\Desktop\programme\EXO1.c|10|error: expected declaration specifiers before 'return'|
        D:\Users\martin\Desktop\programme\EXO1.c|12|error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token|
        D:\Users\martin\Desktop\programme\EXO1.c|7|error: declaration for parameter 'somme' but no such parameter|
        D:\Users\martin\Desktop\programme\EXO1.c|7|error: declaration for parameter 'tableau' but no such parameter|
        D:\Users\martin\Desktop\programme\EXO1.c|17|error: expected '{' at end of input|
        ||=== Build failed: 9 error(s), 8 warning(s) (0 minute(s), 0 second(s)) ===|

        #include <stdio.h>
        #include <stdlib.h>
        int sommeTableau(int tableau[], int tailleTableau);
        
        int main()
        
        int tableau [4] ={2,34,5,6},somme = 0;
        somme = sommeTableau(tableau,4);
        printf("la somme des valeur de ce tableau est %d",somme);
        return 0;
        int sommeTableau(int tableau[], int tailleTableau)
        {
        int somme =0, i = 0:
        for (i = 0; i < 4 ; i++)
        somme += tableau[i];
        return somme
        }
        
        
        
        
        
        


        Merci.
        1. Contributeur
          Il manque des ";" et tu as laissé le ":" déjà remonté dans mon post précédent.
          De plus il manque les accolades pour le bloc du main()
        2. cool et il reste une ereur

          : D:\Users\martin\Desktop\programme\EXO1.o:EXO1.c|| undefined reference to `sommeTableau'|
          ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===

          merci
          |
        3. Contributeur
          Tu as bien vérifié que tu as tout corrigé comme il faut ?
          Si oui, poste ton programme avec les corrections.
        4. #include <stdio.h>
          #include <stdlib.h>
          int sommeTableau(int tableau[], int tailleTableau);
          
          int main()
          {
          
          
          int tableau [4] ={2,34,5,6},somme = 0;
          somme = sommeTableau(tableau,4);
          printf("la somme des valeur de ce tableau est %d",somme);
          return 0;
          int sommeTableau(int tableau[], int tailleTableau)
          {
          int somme =0, i = 0;
          for (i = 0; i < 4 ; i++);
          somme += tableau[i];
          }
          return somme;
          }
          
          
          
          
          
          
        5. Contributeur
          Tu as oublié de mettre l'accolade fermante du main()...
      2. #include <stdio.h>
        #include <stdlib.h>
        int sommeTableau(int tableau[], int tailleTableau);
        
        int main()
        {
        
        
        int tableau [4] ={2,34,5,6},somme = 0;
        somme = sommeTableau(tableau,4);
        printf("la somme des valeur de ce tableau est %d",somme);
        return 0;
        int sommeTableau(int tableau[], int tailleTableau)
        {
        int somme =0, i = 0;
        for (i = 0; i < 4 ; i++);
        somme += tableau[i];
        }
        return somme;
        }
        
        
        
        
        
        
        1. Contributeur
          Bon, je ne vois pas comment être plus clair...
          Il FAUT une accolade APRES le return 0;
          Je remets ce que j'ai dit :
          int main() 
          {
          ...
          return 0;
          } /*c'est là l'accolade à rajouter*/


          Et puis en regardant ton code, je vois d'autres erreurs.
          for (i = 0; i < 4 ; i++);
          Pas de ';' après le for. En revanche tu peux rajouter une accolade ouvrante (juste une ouvrante) après ce for.

          Je te conseille vraiment de relire le tuto avant de poursuivre...
        2. cool j'ai enfin réussi ;Merci bcp et désolé d'avoir un peu (MDR) abusé de ta patience
          Merci !