Somme des factorielles des n premiers nombres pairs

little_0607 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
little_0607 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous je suis nouveau en programmation et j'ai besoin que vous m'aidiez svp avec ce programme
#include<studio.h>
#include<conio.h>
Int  main(){
Int  i,k,nbp;
Clrscr();
Unsigned  long prod;
Unsigned long som;
Printf("entrez un entier naturel : ");
Scanf("%d",&n);
For(i=1;i<=n;i++){
      While(nbp<=n){
          If(i%2==0){
          Nbp++;
          }
        }
               Prod=prod*i;
        For(k=1;k<=n;k++){
                 Som=som+prod;
   }
Printf("somme des factorielles des %d premiers pairs est : %d",n,som);
Getch();
Return 0;
}


EDIT : Ajout des balises de code
EDIT2 : Sujet déplacé dans le bon forum...


Svp vraiment aidez moi , je ne sais comment faire ,merci:-)

1 réponse


 
Salut little_0607,

Lorsque tu copie-colle le code source sur le forum, met le entre balises de code c (clique sur la flèche qui pointe vers le bas, située à gauche du bouton image et choisis "c"). Ainsi, ton code sera visible sur le forum en préservant l'indentation, et avec coloration syntaxique (là c'est jordane45 qui a modifié ton post pour y mettre les balises de code, fais le toi même à l'avenir stp :-).

Sinon, lorsque tu postes du code sur le forum, utilise un vrai ordinateur pour copier-coller le code, au lieu de taper à partir d'un téléphone mobile ou une tablette qui va te rajouter des majuscules à chaque début de ligne, ou dont le correcteur orthographique va rectifier ton premier include en
#include <studio.h>
, alors que tu veux taper
#include <stdio.h>
. Il manque aussi une accolade fermante à ton code et la déclaration de n pour que ton code compile ...

Une fois corrigés ces problèmes, ton code n'est pas pour autant correct, même s'il compilera.

Voilà quelques indications :
- le spécificateur
printf
pour un
unsigned long
est
%lu
et pas
%d
...
- les variables
nbp
,
prod
et
som
ne sont pas initialisées à zéro toutes seules par le compilateur ... elles peuvent donc valoir n'importe quoi et fausser complètement l'exécution
- le chiffre zéro est pair
- tu peux calculer le nème nombre pair à partir de zéro (inclus) avec une formule simple

Ensuite la logique de ton programme est fausse, aussi je te recommande d'effacer tout ton code après ton
scanf
et de recommencer pas à pas (par exemple ta boucle
while
est fausse, elle tourne dans le vide et ne s'arrête jamais car
i
ne varie pas à l'intérieur du
while
..., la logique qui suit est aussi erronée pour d'autres raisons).

Voilà une méthode pas à pas que tu pourrais utiliser :
- commence par établir une boucle
for
qui dénombre les nèmes nombres pairs (vérifie que ton code fait ce que tu veux avec des
printf
intermédiaires t'aidant à déboguer ton code)
- une fois que tu dénombres correctement les nombres pairs, pour chaque nombre pair, calcule la factorielle de chaque nombre pair (fait cela une fois seulement après que ton premier code fonctionne, vérifie que ton nouveau code fait ce que tu veux avec des
printf
intermédiaires t'aidant à déboguer ton code)
- une fois que ce code fonctionne, insère le cumul de l'addition de chaque factorielle trouvée dans ta variable destinée à contenir la somme des factorielles (là aussi, tu peux insérer des
printf
intermédiaires t'aidant à déboguer ton code pour vérifier que tu cumules bien les additions des factorielles successives), puis affiche le résultat final en dehors de ta boucle for
- quand ton code est au point, retire les
printf
intermédiaires ayant servi au débogage

Dal
0