Mauvais résultat en prog C
Résolu
KunGu
Messages postés
1169
Date d'inscription
Statut
Membre
Dernière intervention
-
KunGu Messages postés 1169 Date d'inscription Statut Membre Dernière intervention -
KunGu Messages postés 1169 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Mon code devrait me donner la somme de tous les chiffres du tableau, or il me donne seulement le premier chiffre du tableau ! Qu'est-ce qui cloche ? :
Mon code devrait me donner la somme de tous les chiffres du tableau, or il me donne seulement le premier chiffre du tableau ! Qu'est-ce qui cloche ? :
#include <stdio.h> #include <stdlib.h> long sommeTableau(long tableau[], long tailleTableau) { long i; for (i = 0 ; i < tailleTableau ; i++) { long sommetotale = 0; static long somme = 0; sommetotale = somme + tableau[i]; return sommetotale; } } int main(int argc, char *argv[]) { long tableau[4] = {14, 58, 32}, toutesLesSommes = 0; toutesLesSommes = sommeTableau(tableau, 4); printf("La somme de tous les nombres du tableau est de %ld", toutesLesSommes); system("pause"); return 0; }
A voir également:
- Mauvais résultat en prog C
- Resultat foot - Télécharger - Vie quotidienne
- Lexer resultat - Télécharger - Sport
- Robot prog - Télécharger - Édition & Programmation
- Samia, kevin et jason ont gardé la trace de leurs ventes quotidiennes du mois de juillet 2016. dans la feuille bilan, il manque les résultats de jason. insérez une colonne entre samia et kevin et reportez-y les résultats de jason. quel mot secret apparait en f2 ? - Forum LibreOffice / OpenOffice
- Resultat loto 5/90 - Forum Excel
6 réponses
salut j'ai récupéré ton code et corriger les erreurs qu'il y avaient.Il y en avaient un max, mais la cause du problème est que tu as inclut le return dans la boucle for.je tenvoie le code corrigé. La somme est 115.
De plus, utilises getch() au lieu de système ("pause").
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
long sommeTableau(long tableau[], long tailleTableau)
{
long i;
long sommetotale = 0;
static long somme = 0;
for (i = 1 ; i <= tailleTableau ; i++)
{
sommetotale = sommetotale + tableau[i];
}
return sommetotale;
}
int main(int argc, char *argv[])
{
long tableau[4] = {14, 58, 32}, toutesLesSommes = 0;
toutesLesSommes = sommeTableau(tableau, 4);
printf("\nLa somme de tous les nombres du tableau est de %d\n", toutesLesSommes);
getch();
return 0;
}
De plus, utilises getch() au lieu de système ("pause").
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
long sommeTableau(long tableau[], long tailleTableau)
{
long i;
long sommetotale = 0;
static long somme = 0;
for (i = 1 ; i <= tailleTableau ; i++)
{
sommetotale = sommetotale + tableau[i];
}
return sommetotale;
}
int main(int argc, char *argv[])
{
long tableau[4] = {14, 58, 32}, toutesLesSommes = 0;
toutesLesSommes = sommeTableau(tableau, 4);
printf("\nLa somme de tous les nombres du tableau est de %d\n", toutesLesSommes);
getch();
return 0;
}
j'ai compilé le fichier sous dev cpp dans un fichier cpp.Une chose en passant pourquoi prendre comme compteur une variable i de type long, pour une optimisation tu pourrais prendre int ou smallint ou short int.ok? bye
Merci ça marche maintenant ! j'ai viré les long et le return de la boucle for et supprimé le static long somme = 0 qui ne servait à rien.
Mais je crois que tu as aussi commis 2 petites erreurs ^^ : dans la boucle for tu as mis i = 1 alors qu'on l'initialise normalement à 0. Et tu as dit que le résultat faisait 115 alors qu'il fait 104 ;-)
PS: Pourquoi as-tu ajouté #include <conio.h> ?
PS2: Merci pour ces réponses rapides !
Voila le code fini :
Mais je crois que tu as aussi commis 2 petites erreurs ^^ : dans la boucle for tu as mis i = 1 alors qu'on l'initialise normalement à 0. Et tu as dit que le résultat faisait 115 alors qu'il fait 104 ;-)
PS: Pourquoi as-tu ajouté #include <conio.h> ?
PS2: Merci pour ces réponses rapides !
Voila le code fini :
#include <stdio.h> #include <stdlib.h> long sommeTableau(long tableau[], long tailleTableau) { long i; long sommetotale = 0; for (i = 0 ; i < tailleTableau ; i++) { sommetotale = sommetotale + tableau[i]; } return sommetotale; } int main(int argc, char *argv[]) { long tableau[4] = {14, 58, 32}, toutesLesSommes = 0; toutesLesSommes = sommeTableau(tableau, 4); printf("\nLa somme de tous les nombres du tableau est de %ld\n", toutesLesSommes); getch() return 0; }
Oui c'est vrai tu as raison mais je suis le tuto du site du zéro et il utilise toujours des long. Mais quand je programmerait tout seul je ne commettrai plus ces erreurs ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question