Bonsoir Monsieur Madame
J ' aimerai votre aide si vous plait . Je sais que sais d'une île de maths et de programmation . Ces pour cela que je voudrai votre aide si vous plait .
Écrire la fonction binomial qui prend en entrée un entier n et un entier p et retourne le nombre de tirages différents, non ordonnés et sans remise, de p éléments parmi n, c'est à dire le coefficient binomial :
J'ai fait ça met il y a un problème et je ne sais pas c'est quoi le problème :
/* Programme*/
#include <stdio.h>
#include <stdlib.h>
int binominal( int n , int p );
int factorielle(int entier);
int factorielle(int entier){
int fact=1;
int i;
if (entier<0)
printf("Cet entier n'est pas positif.\n");
else
{
for(i=1 ; i<=entier ; i++ )
fact *=i;
printf(" Le Factorielle de %d est %d \n" , entier , fact);
}
return 0;
}
int binominal(int n , int p){
printf("Entrer n et p pour calculer le coefficient binominale c'est à dire n|p");
scanf("%d",&n);
scanf("%d",&p);
if(p>=n)
printf( "Entrer un nombre tel que p soit inférieur ou égale à n \n" );
else {
return (factorielle(n)) / (factorielle(p) * factorielle(n-p));
}
return 0;
}
Bonjour,
Dans la fonction factorielle, pourquoi y a t'il return 0 ?
même problème dans la fonction binomial.
Le code erreur de la compilation de gcc pour moi c'est :
/usr/bin/ld : /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o : dans la fonction « _start » :
(.text+0x1b) : référence indéfinie vers « main »
collect2: error: ld returned 1 exit status
salut ..une idée en passant
on peut ecrire une fonction en trois ligne ou 4 lignes sans passer par le calcul de factorielles
function binomiale ( n as long , p as long ) as long
If p = 0 Then
binomiale = 1
ElseIf p > n Then
binomiale = 0
Else
binomiale = binomiale(n - 1, p) +binomiale(n - 1, p - 1)
End If
End Function
ecris en vba pour te donner une idée
Bonjour
le code erreur indique clairement que tu n'as pas défini le main, c'est-à-dire le corps du programme. Ici, tu as simplement défini les fonctions dans un fichier et c'est tout. Si tu débutes, tu as beaucoup de tutos en ligne et je ne saurais t'en conseiller un en particulier. Par ailleurs, c'est un peu le bazar ton code là...
Tu définis une fonction binomial qui prend deux entiers n et p pour ensuite faire du scanf pour récupérer des valeurs. On peut bidouiller pour que ça marche, mais autant faire les choses correctement dès le début. En oubliant ces histoires de scanf (en les effaçant du code gros), pour que ton code compile, tu dois rajouter à la fin de ton programme
int main ( int argc , char * argv[] ) {
int n;
int p;
int res;
n = 10 ; % à titre d'exemple
p = 3 ; % à titre d'exemple
res = binomial(n, p) ;
printf("Le coefficient binomial '%d' parmi '%d' est égal à '%d'. \n", p, n, res) ;
return 0 ;
}
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :