Factorielle
maria3100
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
paly2 Messages postés 254 Date d'inscription Statut Membre Dernière intervention -
paly2 Messages postés 254 Date d'inscription Statut Membre Dernière intervention -
salut svp ce programme marche avec la boucle < while> mais avec la boucle for non toujours le résultat f=1
#include<stdio.h>
#include<conio.h>
main()
{ int i=0,p=0,n=0,f=1;
printf("donner n",n);
scanf("%d",&n);
printf("donner p",p);
scanf("%d",&p);
i=n-p;
while(i>1)
{f=f*i;
i--;
}
printf("donner resultat f=%d",f);
getch();}
ET AVEC LA BOUCLE FOR:
#include<stdio.h>
#include<conio.h
main()
{ int i=0,p=0,n=0,f=1;
printf("donner n",n);
scanf("%d",&n);
printf("donner p",p);
scanf("%d",&p);
i=n-p;
for(i=1;i>1;i--)
{f=f*i;
}
printf("donner resultat f=%d",f);
getch();}
#include<stdio.h>
#include<conio.h>
main()
{ int i=0,p=0,n=0,f=1;
printf("donner n",n);
scanf("%d",&n);
printf("donner p",p);
scanf("%d",&p);
i=n-p;
while(i>1)
{f=f*i;
i--;
}
printf("donner resultat f=%d",f);
getch();}
ET AVEC LA BOUCLE FOR:
#include<stdio.h>
#include<conio.h
main()
{ int i=0,p=0,n=0,f=1;
printf("donner n",n);
scanf("%d",&n);
printf("donner p",p);
scanf("%d",&p);
i=n-p;
for(i=1;i>1;i--)
{f=f*i;
}
printf("donner resultat f=%d",f);
getch();}
A voir également:
- Factorielle en c boucle while
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Factorielle calculatrice casio ✓ - Forum calculatrices
- Problème xiaomi redmi note 8t s'allume et s'éteint vibre - Forum Xiaomi
3 réponses
Une factorielle ne prend qu'un seul paramètre, ici tu demandes un N et un P
https://fr.wikipedia.org/wiki/Factorielle
https://fr.wikipedia.org/wiki/Factorielle
Le p n'a rien à faire dans le calcul d'une factorielle, tu peux très bien l'enlever.
Pour la boucle for, comme l'a dit Dalfab, sois tu fais:
Sois:
Pour la boucle for, comme l'a dit Dalfab, sois tu fais:
for(i=n;i>1;i--) // On part de N et on descend jusqu'à 1. f*=i; // C'est une notation raccourcie qui fait la même chose que f=f*i. // Note: tu n'as pas besoin des accolades pour délimiter le bloc for, car celui-ci ne contient qu'une seule instruction.
Sois:
for(i=2;i<=n;i++) // On part de 1 (en fait de 2, tu n'as pas besoin de multiplier par 1) et on monte jusqu'à n. f*=i;