Je suis hyper novice dans le domaine du C.
Donc je me suis m'y au cours de m@teo21 :D. Je suis actuellement sur les tableaux . Je pense l'avoir bien étudié et donc je me suis mis à codé les ptits exos à la fin de ce chapitre.
Je vous met un copié collé de mon code, j'espère qu'il est assez clair.
double tableau[5]={1,2,3,4,5}; double taille=5,compteur=0; long choix=0;
do { printf(" \n\n"); printf("********************* || Menu || ******************************************* \n\n"); printf("* 1: Calculer la somme du Tableau *\n"); printf("* 2: Calculer la moyenne du Tableau *\n"); printf("* 3: Initialiser le Tableau en copiant son contenu dans un second Tableau *\n"); printf("* 4: Initialiser le Tableau *\n"); printf("* 5: Initialiser les valeurs supèrieures a un maximum choisi *\n"); printf("* 6: Classer les valeurs du Tableau par ordre croissant *\n"); printf("* 7: Afficher le tableau *\n\n"); printf("* 8: Quitter * \n"); printf("**************************************************************************** \n\n"); printf("Veuillez saisir votre choix \n ");
scanf ("%ld", choix);
switch(choix) { case1: printf("L'addition des nombres contenus dans le tableau est de: %ld \n *", sommeTableau(tableau,taille)); break;
case2: printf("La moyenne du tableau est: %lf \n", moyenneTableau (tableau,taille)); break;
case3:
copieTableau (tableau,taille); break;
case4:
effacementTableau (tableau,taille); break;
case5:
effacementChiffre (tableau,taille); break;
case6:
triTableau (tableau,taille); break;
case7:
afficheTableau (tableau,taille); break;
default: { printf("Votre numéro ne correspond pas à un menu \n"); break; } }
Mon soucis que je rencontre ce trouve à l'excution de mon script (Quand je saisi un chiffre et que je valide, un fenetre s'ouvre et me dit que "tableau.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru." Pb de mémoire ? je vois vraiment pas là? dois je modifier mon script si oui où et comment?
Je vous remercie par avance de l'aide que vous pourriez m'apporter
Merci beaucoup, j'ai un peu honte car c'est pas la première fois que l'on me le dit (sacré & )
Sinon je m'étais trompé dans le tri au lieu de compteur2 j'ai mis compteur 1.
J'ai par contre un soucis avec les types; je comprend pas pq quand je met le type double j'ai que des valeur 0 dans mon tableau alors qu'avec le type long cela fonctionne bien ?
Autre ptit soucis se situe au niveau de la moyenne, j'ai comme résultat toujours "0" , pourtant la fonction est bonne non?
Et juste pour ma culture perso pq code et non script ?
- je ne l'ai pas dit expréssément mais je voulais que vous travailliez avec des nombres entiers (long) et non des décimaux (double). En informatique on utilise des entiers autant que possible, les double c'est vraiment quand on n'a pas d'autre choix, ça complique les choses sinon
Il faudrait certainement que tu déclares ton tableau en rajoutant une virgule (enfin un point) pour créer un "nombre décimal" :
double tableau[5]={1.0,2.0,3.0,4.0,5.0};
Mais je te recommande de tout changer en long, de même pour les prototypes de tes fonctions. D'autant plus que ton double tailleTableau est une aberration (depuis quand y a-t-il des tableaux d'une taille de 4.7 ? ). La taille est entière.
En passant TOUT ton code sur des long (les types de retour de fonction aussi, n'oublie rien) tu n'auras plus de problème de calcul.
Pourquoi on dit code et pas script ? Parce qu'un script, c'est un bout de code qui s'insère dans quelque chose de particulier : par exemple un javascript, c'est un bout de code dans une page HTML.
En revanche, on parle de code C parce qu'il n'y a que ça : du code, pour faire un programme. Pas de HTML autour ni rien
Merci d'avoir pris le temps de me répondre c'est sympa
Merci pour l'explication de la différence code /script.
En fait j'ai utilisé les doubles pour la moyenne que j'ai un peu extrapolé à tout mon code je dois l'avouer car j'avais en tête que la division utilisé dans la moyenne entraine en nombre décimal .
Donc en effet j'ai rectifié mon code en ne mettant que des long et l'essentiel de mon code fonctionne sauf la moyenne qui m'affiche à chaque fois 0.00000 et je sais pas trop pq?
Maintenant je vais essayer de comprendre pq j'ai que des arrondis à la valeur inférieur (par exemple somme = 99 et moyenne me donne 19 au lieu de 19.8) mais j'ai vu ca dans un de tes cours je vais me replonger dessus
Merci beaucoup par ta réactivité
P.S cool j'ai trouvé comme un grand j'ai transformé le type long de la fonction somme en double et là ca marche
Ahh ca commence à rentrer bon vais attaquer les caractères maintenant
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)
If you'd like to join us, read "How do we work at OpenClassrooms"! :)