Pb de débutant, insérer des valeurs dans un tableau [Résolu] - C - Programmation
Marsh Posté le 07-03-2022 à 10:04:06
Premier conseil pour t'apprendre à debugger : mets des printf un peu partout dans ton code avec les valeurs intermédiaires pour voir par où tu passes et qu'est-ce qui se trame dans tes variables et dans ta boucle, ça t'aidera à cible le problème
Marsh Posté le 07-03-2022 à 10:12:58
Tu dis que ça ne fonctionne pas mais quelle(s) sortis(s) as-tu ?
Des messages d'erreurs ?
Marsh Posté le 07-03-2022 à 10:16:52
Bonsoir
Marsh Posté le 07-03-2022 à 10:20:02
tu enregistres ta saisie en tant que String que tu stockes dans un tableau de double. La transformation n'est sans doute pas automatique
(après, mon C est peut-être rouillé)
Marsh Posté le 07-03-2022 à 10:22:19
Jaxom31 a écrit : Bonjour, je dois lire une série de valeurs (de 1 à 50), les ranger dans un tableau et en faire l'addition (pour plus tard calculer la moyenne).
|
Fantome Persecuteur a écrit : Premier conseil pour t'apprendre à debugger : mets des printf un peu partout dans ton code avec les valeurs intermédiaires pour voir par où tu passes et qu'est-ce qui se trame dans tes variables et dans ta boucle, ça t'aidera à cible le problème |
Oui, quand on comprend la syntaxe du printf
jay31790 a écrit : Tu dis que ça ne fonctionne pas mais quelle(s) sortis(s) as-tu ? |
Les valeurs affichées sont fausses !
XaTriX a écrit : Bonsoir |
Pas encore couché ?
C'est bon, en fait mon programme fonctionnait bien, ce sont mes printf qui merdaient avec printf("%lf", valeur); ça marche mieux.
edit : et des scanf("%lf", &valeur); (merci Jay)
Marsh Posté le 07-03-2022 à 10:23:46
jay31790 a écrit : tu enregistres ta saisie en tant que String que tu stockes dans un tableau de double. La transformation n'est sans doute pas automatique |
Oui, merci, j'avais testé un peu tout, je pensais que mes scanf n'était pas correct.
Marsh Posté le 09-03-2022 à 00:00:26
Jaxom,
Deux petites choses :
int nbValeur=51;
while ((nbValeur<0) || (nbValeur >50)) {
printf("Combien de valeurs allez-vous saisir ? :" );
scanf("%i", &nbValeur);
}
c'est moins logique que :
int nbValeur;
do {
printf("Combien de valeurs allez-vous saisir ? :" );
scanf("%i", &nbValeur);
} while ((nbValeur<0) || (nbValeur >50));
Et d'autre part, pour ce genre de programme, de nos jours, c'est bien plus pratique et plus simple d'écrire ça en C++ (qui par exemple, a des conteneurs dynamiques, qui ne t'obligent pas a faire des hypothèses sur le nb de valeurs à saisir).
A+,
Marsh Posté le 09-03-2022 à 16:24:43
gilou a écrit : Et d'autre part, pour ce genre de programme, de nos jours, c'est bien plus pratique et plus simple d'écrire ça en C++ (qui par exemple, a des conteneurs dynamiques, qui ne t'obligent pas a faire des hypothèses sur le nb de valeurs à saisir). |
Ca c'est une discussion qui peut durer une éternité probablement. Certes, le C++ c'est plus puissant mais aussi beaucoup plus complexe. Perso je dirais quelque bases en C ne font pas de mal, surtout si on veut ensuite partir sur des µC.
Et pour les conteneurs dynamiques, il y a toujours malloc() et realloc().
Marsh Posté le 09-03-2022 à 23:26:04
Code :
|
Pour ce type d'exercice, on peut faire du C++ sans utiliser de manière explicite les classes, juste avec une bonne utilisation des conteneurs.
Et ça te fait du code bien plus robuste que le code C (grosso modo, le seul truc que j'ai pas géré, c'est si la somme accumulée dépasse les bornes d'un double).
Mais ça accepte autant d'entrée que la mémoire de ta machine veut bien, ça saute tout ce qui est invalide sans broncher...
A+,
Marsh Posté le 15-03-2022 à 09:54:33
gilou a écrit : Jaxom, Deux petites choses : c'est moins logique que : Et d'autre part, pour ce genre de programme, de nos jours, c'est bien plus pratique et plus simple d'écrire ça en C++ (qui par exemple, a des conteneurs dynamiques, qui ne t'obligent pas a faire des hypothèses sur le nb de valeurs à saisir). A+, |
Désolé, je n'avais pas vu les réponses, le c est imposé. effectivement le do...while est plus logique, merci. Je n'ai pas l'habitude de cette boucle.
Marsh Posté le 07-03-2022 à 09:44:45
Bonjour, je dois lire une série de valeurs (de 1 à 50), les ranger dans un tableau et en faire l'addition (pour plus tard calculer la moyenne).
Je ne comprends pas pourquoi mon programme ne fonctionne pas
Message édité par Jaxom31 le 07-03-2022 à 10:26:34
---------------
0 118 999 881 999 119 725 ...... 3 -