Probleme dans mon code

Résolu
Anju Akuma Messages postés 253 Date d'inscription   Statut Membre Dernière intervention   -  
Anju Akuma Messages postés 253 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   1 480
 
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   Statut Membre Dernière intervention   1 480
 
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 232 Date d'inscription   Statut Membre Dernière intervention   18
 
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   Statut Membre Dernière intervention   1 480
 
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   Statut Membre Dernière intervention   1 480
 
et le problème du 2 000 000 est revenu :(
je n'arrive plus à l'enlever :(
0
mahdu972 Messages postés 232 Date d'inscription   Statut Membre Dernière intervention   18
 
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   Statut Membre Dernière intervention   1 480
 
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   Statut Membre Dernière intervention   1 480
 
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