CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] probleme de tableau

Nicolaa
Nicolaa
Niveau 10
13 avril 2008 à 20:43:51

Salut
Je debute en programmation C et pour m entrainer je voulais faire un ptit programme qui calcule la somme des nombres contenu dans tableau.
J ai un peu de mal donc je voulais montrer mon code pour voir ce qui ne vas pas:

  1. include <stdio.h>
  2. include <stdlib.h>

long somme=0;
long sommeTableau(long tableau[], long tailleTableau);

long (long tableau[], long tailleTableau)
{
long i;
for (i = 0 ; i < tailleTableau ; i++)
{
i+=i;
}
return somme;

}
int main(int argc, char *argv[])
{
long tableau[3];
tableau[0]=1;
tableau[1]=2;
tableau[2]=10;
sommeTableau(3,2);
printf("%ld\n,somme");

system("PAUSE");
return 0;
}

Je crois que ce st au niveau des argument que je met dans la deuxiemme fonction

Est ce que qqun peut me filer un coup de main SVP?
merci

dnob700
dnob700
Niveau 10
13 avril 2008 à 23:15:18

"sommeTableau(3,2);"

Que veulent dire le 3 et le 2 dans ton appel ?
D'après la déclaration de ta fonction le premier paramètre doit être le tableau et le second sa taille. Donc il faut écrire :

sommeTableau(tableau,3);

Ensuite, il faut choisir, soit ta fonction sommeTableau renvoie la somme du tableau dans ce cas là, il faut changer "i+=i;" en "somme += tableau[i];" et faire "long somme = 0;" au début de la fonction et retirer la déclaration de somme dans l'en tête du fichier, et déclarer somme aussi dans ta fonction main et enregistrer le retour de la fonction dans la variable.

Ou alors, le fonction modifie une variable globale (mais c'est très mal) et alors il faut quand même faire "somme += ..." et mettre somme à zéro au début de la fonction de somme.

Nicolaa
Nicolaa
Niveau 10
14 avril 2008 à 21:44:40

Salut
J ai modifié mon code en fonction de tes remarques
Maintenant j arrive a compiler les fichier,mais le resultat renvoyé est 0,j ignore pourquoi:

  1. include <stdio.h>
  2. include <stdlib.h>

long sommeTableau(long tableau[], long tailleTableau);

long sommeTableau(long tableau[], long tailleTableau)
{
long i;
long somme=0;
for (i = 0 ; i < tailleTableau ; i++)
{
somme += tableau[i];
}
return somme;

}
int main(int argc, char *argv[])
{
long somme=0;
long tableau[3];
tableau[0]=1;
tableau[1]=2;
tableau[2]=10;
sommeTableau(tableau,3);
printf("%ld\n",somme);

system("PAUSE");
return 0;
}

Nicolaa
Nicolaa
Niveau 10
14 avril 2008 à 21:46:17

dsl je sais que c est difficilement lisible

Kaoron
Kaoron
Niveau 9
14 avril 2008 à 22:14:31

Tu n'as pas affecté le résultat de ton appel sommeTableau(tableau,3) dans somme, donc si tu affiches le contenu de somme, ce sera son contenu initial : 0.

final-hearts
final-hearts
Niveau 10
14 avril 2008 à 22:29:27

... La programmation demande de la concentration et de l'observation, si tu n'es pas capable de corriger un problème comme ça, c'est que tu dois réviser dur. La solution était celle que dit Kaoron, même si il serait aussi simple de mettre le printf() dans la fonction car ce serait plus pratique si tu as seulement besoin d'afficher la valeur une seule fois. Si tu as besoin de la valeur après, fais comme tu avais commencé avec la correction apportée par Kaoron^^

-DarKiwi-
-DarKiwi-
Niveau 10
15 avril 2008 à 20:16:08

tu peux mettre :

long tableau[3] = {1, 2, 10};

c'est plus rapide pour mettre les valeurs dans ton tableau. pour l'instant ca sert pas à grand chose vu la taille du prog, mais si à chaque variable tu fais une ligne ca risque d'être lourd à la longue...
____________________________________
:cool: -DK- :cool:
http://nonjeunehomme.tk

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment