problème exercice tableau

problème exercice tableau - C - Programmation

Marsh Posté le 13-11-2011 à 15:22:25    

Bonjour,
 
Je débute dans la programmation en C et j'ai voulu écrire un programme qui fait la somme des valeurs d'un tableau, mais ça ne fonctionne pas, pouvez vous m'aider s'il vous plait?
Voici ce que j'ai tapé:
 
# include <stdio.h>
#define N 4
int sommetableau(int tableau[], int taille);
int main()
{
    int tab[N], i;
    for(i=0; i<N; i++)
    {
        printf("entrez la valeur de tab[i]\n" );
        scanf("%d", &tab[i]);
    }
    sommetableau(tab[N], N);
    printf("le resultat est:%d\n", sommetableau(tab[N], N));
    return 0;
}
int sommetableau(int tableau[], int taille)
{
    int j, resultat=0;
    for(j=0; j<taille; j++)
    {
        resultat+=tableau[j];
    }
        return resultat;
 
}

Reply

Marsh Posté le 13-11-2011 à 15:22:25   

Reply

Marsh Posté le 13-11-2011 à 16:29:42    

Code :
  1. #include <stdio.h>
  2. #define N 4
  3. int sommetableau(int tableau[], int taille);
  4. int main()
  5. {
  6.     int tab[N], i;
  7.     for(i=0; i<N; i++)
  8.     {
  9.         printf("entrez la valeur de tab[i]\n" );
  10.         scanf("%d", &tab[i]);
  11.     }
  12.     sommetableau(tab, N);
  13.     printf("le resultat est:%d\n", sommetableau(tab, N));
  14.     return 0;
  15. }
  16. int sommetableau(int tableau[], int taille)
  17. {
  18.     int j, resultat=0;
  19.     for(j=0; j<taille; j++)
  20.     {
  21.         resultat+=tableau[j];
  22.     }
  23.         return resultat;
  24. }


 
L'adresse d'un tableau c'ets juste son nom pas son nom+sa taille

Reply

Marsh Posté le 13-11-2011 à 17:09:30    

euhhhh, tu veux dire qu'il faut que j'enlève la taille dans le scanf??

Reply

Marsh Posté le 13-11-2011 à 17:54:37    

Non, je pense plutôt que c'est l'appel à la fonction "sommetableau" qui pose problème.


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 13-11-2011 à 17:58:39    

ah ok ouais ça y est j'ai vu l'erreur mais je ne la comprends pas? et dans ma boucle il me demande à chaque fois tab[i] et non pas tab[0], tab[1],...une idée?

Reply

Marsh Posté le 13-11-2011 à 17:59:40    

non joel.F a bien raison, en faisant comme il dit la somme s'effectue bien, mais je ne comprends pas mon erreur et ma boucle for n'a pas d'effet sur le printf de tab[i]

Reply

Marsh Posté le 13-11-2011 à 18:05:19    

Ce qu'on appelle "tableau", en fait, c'est simplement le pointeur sur le premier élément. Donc, ici, le 1er paramètre à passer à ta fonction, c'est juste "tab". Et la taille en 2ème paramètre pour que la fonction sache jusqu'où elle peut parcourir le tableau en question.
("tab[N]", ce n'est pas un tableau)


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 13-11-2011 à 18:09:13    

ahhh ok!!! merci!! et par contre, pourquoi ma boucle sur le 1er printf ne marche pas?

Reply

Marsh Posté le 13-11-2011 à 18:20:48    

Ca :

Code :
  1. printf("entrez la valeur de tab[i]\n" );

?
"tab[i]" est dans la chaîne de caractère, il n'y a aucune évaluation. Essaie quelque chose du genre

Code :
  1. printf("entrez la valeur de tab[%d]\n", i);


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 13-11-2011 à 20:17:28    

merci mrbebert!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed