Probleme dans mon code

Résolu/Fermé
Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 - Modifié par Anju Akuma le 7/12/2013 à 17:23
Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 - 7 déc. 2013 à 19:35
Bonjour,
je débute en C et je souhaiterais additionner toutes les cases de mon tableau (qui comporte N valeur. On a définit N=10)

Voici mon code :

int entrenb ()
{ int t1[N];
int n = 0, result, i = 0;
printf ("entrer %d nombre", N);
do
{
++n;
scanf("%d", &t1[n]);
} while(n<10);

}
int calc ()
{
int i, result, t1[N];
for(i = 0; i < N; i++)
{
result=result+t1[i];
};
printf ("le resultat est %d", result);
}

int main()
{
int t1[N], i = 0, result;
entrenb ();
calc ();
return 0;
}

J'entre les 10 nombres et au moment ou il est censé m'afficher le resultat il m'affiche un nombre dans les 2 000 000 000. Je ne comprend pas trop pourquoi... La derniere fois que j'ai eu se probleme là c'etait que j'affichais l'adresse de la variable aulieu de la variable. Pourtant ce n'est pas le cas ici.
Encore une fois je débute. Alors il y a plein de chose qui seront "horrible" à vos yeux à mon avis. x)

Voilà merci d'avance et bonne journée
A voir également:

3 réponses

Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 1 477
7 déc. 2013 à 17:22
ah non c'est bon j'ai trouvé, il fallait initialiser result=0 au début.
merci quand meme :)
0
Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 1 477
7 déc. 2013 à 17:34
J'ai un nouveau probleme x)
quand je le lance si je tape
1
2
3
4
5
6
7
8
9
10
ça s'arrete et me donne le resultat. Normal.
En revanche si je tape n'importe quoi d'autre ça ne s'arrete pas forcement au bout de 10 essais.
0
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 18
7 déc. 2013 à 17:36
C'est à dire n'importe quoi d'autre?
Votre code attend que vous saisissiez 10 nombres avant de passer à la suite
0
Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 1 477
7 déc. 2013 à 17:51
je saisie par exemple :
2
2
2
2
2
2
5
8
9
10
et là je peux encore en entrer alors qu'il y en a déjà 10.
0
Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 1 477
7 déc. 2013 à 17:52
et le problème du 2 000 000 est revenu :(
je n'arrive plus à l'enlever :(
0
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 18
7 déc. 2013 à 17:57
Je pense que l'erreur vient du scanf et le remplissage du tableau. Regarde comment on rempli un tableau
0
Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 1 477
7 déc. 2013 à 18:00
Mais ça a marché il y a 5 minutes... Bizarre.
Tu es sur que ça vient de là ? ça me parait juste, je vais vérifier. Mais toi tu sais programmer en C ? tu ne peux pas me renseigner sur comment remplir le tableau ? pourtant ça me parait juste mais je vais vérifier quand même alors.
0
Anju Akuma Messages postés 253 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2015 1 477
7 déc. 2013 à 19:35
problème réglé, voilà le code correct :
#include <stdio.h>
#define N   10

int entrenb (int t1 [N])
{
                int n = 0;
        printf ("entrer %d nombre\n\n",N);

    do
    {

    scanf("%d",&t1[n]);
    ++n;
    } while(n < N);

        return 0;
}

int calc (int t1[N])
{
        int i=0;
        int result = 0;

 for(i = 0; i < N; i++)
    {
    result = result+t1[i];
    };

        printf ("le resultat est %d",result);
    return 0;
}

int main()
{
int t1[N];
entrenb (t1);
calc (t1);
return 0;
}
0