Salut a vous, je suis en train d'essayer faire un programme en langage c sur l'arrangement. maintenant je commence, alors je peux pas terminer. J'aimerais savoir si une personne peut m'aider stp.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n,p,num,deno,F;
printf("Donner n: \n");
scanf("%d",&n);
printf("Donner p: \n");
scanf("%d",&p);
num=1;
for(i=1; i<=n; i++)
{
num=num*i;
}
deno=1;
for(i=1; i<=(n-p); i++)
{
deno=deno*i;
}
printf("L'arrangement est: %d/%d \n",n/p,F);
return 0;
}
bonjour
connaissant la définition de l'arrangement de objets parmi n , il serait bien vu de définir une fonction "factorielle"
Bonsoir,
Loin d'être un expert en C ( pour ne pas dire totalement incompétent ) mais il me semble néanmoins que nulle part tu affectes de valeur à F d'une part.
D'autre par il semblerait que ce que tu affiches à la fin est le ratio :
Sachant que F n'est affecté nulle part ...
Finalement dans mes souvenirs ( mais je dis certainement n'importe quoi ), si tu "return 0" tu n'auras pas le résultat attendu?
Bonjour,
ton algorithme me semble très maladroit.
Après vérification des valeurs de n et p je verrais qqc du genre
à la fin de la boucle a contient le nombre d'arrangements de p objets pris parmi n.
a=1
pour i allant de n-p+1 à n par pas de 1
a=a*i
De plus il faut sans doute contrôler les dépassements de capacité ( et utiliser des entiers long ).
salut
je ne connais pas trop le c++ mais sous excel voila quelque chose de similaire que j'ai pu faire
Bonsoir,
je suis désolé de voir proposer des algorithmes faisant 199 multiplications pour calculer
Le mien en fait une.
** C'est verifier pour les petit chiffres a savoir pour 1 a 10. Ex. Arrangement de 3 dans 5. Mais non pas pour arrangement de 5 dans 20. comment faire?
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,j,n,p,num,den,arr;
printf("Donner le nombre n:\n");
scanf("%d",&n);
printf("Donner le nombre p:\n");
scanf("%d",&p);
num=1;
for(i=1;i<=n;i++)
{
num=num*i;
}
den=1;
for (j=1;j<=(n-p);j++)
{
den=den*j;
}
{
arr=num/den;
}
printf("L'arrangement p dans n est: %d",arr);
}
Bonjour
ma très modeste contribution
il y a des trucs dangereux (en dehors de ce que tu veux réaliser)
tu utilise la fonction scanf (moi à ta place je me méfierai d'elle )
(n'oublie pas non plus ce que te dit Verdurin gérer intlong mais bon c'est pas ça qui va faire planter ton ordi )
créer la fonction
void f_buffer (void)
{
int c
while ((c=getchar())!=EOF&&c!='\n');
}
celle là va te vider le buffer
bon après je te conseillerais un autre truc
mais c'est pas le genre de chose que je dirais comme ça
c'est discutable (moi ça marche mais j'ai déjà vu des spécialistes faire autrement quand ils n'utilise nt pas scanf)
en tout cas stp fait ta fonction vide buffer
et créer ta factorielle
Bonsoir,
si n et p sont des entiers positifs tels que np alors
sinon on peut se demander quel est le sens de
Il me semble particulièrement stupide de calculer les factorielles et d'utiliser la formule
On sait que le résultat est un entier, et on peut simplifier avant de faire le calcul.
Par exemple me semble plus manipulable que
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :