Faire la somme des elements d'un tableau en C [Résolu/Fermé]

Signaler
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
-
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
-
Bonjour,


Je travaille sur un petit programme qui doit être capable 'enregistrer une liste d'entiers et d'en sortir la somme et la moyenne. Comme le nombre d'entiers ne doit pas toujours être le même et l'utilisateur doit pouvoir entrer autant d'entiers qu'il veut...j'ai choisi de travailler avec l'allocation dynamique d'espace pour la création du tableau qui recevrai mes entiers. Jusque la ca va j'arrive a enregistrer la liste d'entiers et a les afficher...

La ou ca coince c'est que j'arrive pas a calculer ni la somme ni la moyenne...

Merci de votre coup de main

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

int main()
{
int numbofinput = 0, i = 0, sum = 0, product = 0 ;
int* sizeofarray = NULL; // This will be the array

printf("what is the number of your input ? ");
scanf("%d", &numbofinput);

if ( numbofinput > 0) // The user must enter a minimum of one input
{
sizeofarray = malloc( numbofinput * sizeof(int));
if ( sizeofarray == NULL)
{
exit(0);
}

for (i = 0 ; i < numbofinput ; i++)
{
printf("Enter the number n: %d : \n", i + 1);
scanf("%d", &sizeofarray[i]);
}

printf("\n\n This is the list of your inputs :\n");
for (i = 0 ; i < numbofinput ; i++)
{
printf("%d\n", sizeofarray[i]);

}

/* for ( i = 0; i < sizeofarray ; i++)
{
sum = sum + sizeofarray[i];
printf("\n This is the sum of your inputs :\n");
printf("Sum=%d\n", sum);

}*/

free(sizeofarray);
}
return 0;
}

3 réponses

Ca fait longtemps que je n'ai pas fait de c mais je dirais que le calcul ne se fait pas car il s'agit d'un tableau de pointeurs.

Essaye : sum = sum + &sizeofarray[i];
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
si c'est pour dire de grosses conneries, mieux vaut s'abstenir.
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
La somme n'est pas bonne ?
Je ne vois pas où est le problème, à part qu'en général on sort les printf de la boucle de sommation.
Si, j'ai le bug, tu fait la boucle jusqu'à sizeofarray au lieu de numbofinput
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010

Salut

Ça passe pas, la je suis bloqué. Je ne vois pas ou se situe le problème. après avoir lister les nombres entrés le programme ne lit même pas la suite (calcul de la somme) l'exécution s'arrête net .
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
ma solution n'est pas bonne ?
for ( i = 0; i < numbofinput ; i++) 
{ 
   sum = sum + sizeofarray[i]; 
}
printf("\n This is the sum of your inputs :\n"); 
printf("Sum=%d\n", sum); 
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010

j'ai copié ligne par ligne ta proposition, je l'ai insérée dans mon code. Lors de la compilation cette partie du code n'est pas prise en compte. voici le code complet avec ta solution:

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

int main()
{
int numbofinput = 0, i = 0, sum = 0, product = 0, indice = 0 ;
int* sizeofarray = NULL; // This will be the array

printf("what is the number of your input ? ");
scanf("%d", &numbofinput);

if ( numbofinput > 0) // The user must enter a minimum of one input
{
sizeofarray = malloc( numbofinput * sizeof(int));
if ( sizeofarray == NULL)
{
exit(0);
}

for (i = 0 ; i < numbofinput ; i++)
{
printf("Enter the number n: %d : \n", i + 1);
scanf("%d", &sizeofarray[i]);
}

printf("\n\n This is the list of your inputs :\n");
for (i = 0 ; i < numbofinput ; i++)
{
printf("%d\n", sizeofarray[i]);

}
for ( i = 0; i < numbofinput ; i++)
{
sum = sum + sizeofarray[i];
}
printf("\n This is the sum of your inputs :\n");
printf("Sum=%d\n", sum);
free(sizeofarray);
}
return 0;
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
j'ai fait un copier/coller de ce code dans DevCPP, j'ai ajouté l'accolade manquante à la fin, et il n'y a eu aucun problème.
Es tu sur de bien compiler le bon fichier ? Supprime les anciens code et exécutable en premier lieu.
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010

Salut

C'est bon j'ai fermé codeblocks, puis je l'ai démarré de nouveau compilé. Ça marche au poil. Merci
Bye

Ps: "si c'est pour dire de grosses conneries, mieux vaut s'abstenir." ( MDR)Tu y as été un peu fort avec l'ami Joe. Ça partait d'un bon sentiment...encore merci