Programmation en C

Fermé
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012 - 31 mars 2012 à 17:56
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 31 mars 2012 à 23:43
Bonjour, Je suis débutant en programmation et j'ai besoin d'aide pour résoudre ce programme d'ores et déjà je vous dis merci.

Ecrire un programme en C qui calcule et affiche le produit des entiers pairs et impaires de 1 a 15.

Voila ce que je fais
# include. <studio.h>
main ()
{
int n; /* pour le nombre fournit par l'utilisateur */
int i; /* compteur de nombre de valeur de traitées */
int Prod; /* calcule du produit*/
i=1
Prod=1
for (i=1;1<=15; i=i+1);
{
printf(" entrer un nombre entier : ");
scanf ("%d",& n);
printf ("voici son produit : %d\n", Prod*i);
i=i+1 /* +1 sur le compteur */
}
}

7 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
31 mars 2012 à 18:03
Bonjour,

Pas mal de problèmes.
Déjà ce n'est pas studio. h mais stdio.h (standard Input / Output).
main () : il faut mettre int main (void)

i=1 : il ne faut pas oublier le ";"
for (i=1;1<=15; i=i+1); pas de ";" ici sinon le for bouclera dans le vent.
i=i+1 : pas besoin de le mettre, il se trouve déjà dans le for.

Vous avez oublié le "return 0;" à la fin du programme.

Ensuite, dans votre programme, Prod reste toujours à 1. Il faudrait que la valeur change.
0
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
31 mars 2012 à 18:58
comment je peux changer la valeur fiddy, dis le moi
0
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
31 mars 2012 à 18:09
Merci mais penses -tu que le Prod intialiser a 1 est normale
Prod =Prod*i
0
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
31 mars 2012 à 18:14
return 0; comment le metrre avant de fermer le programme.
0
1<=15 est toujours vrai alors que i<=15 ne l'est pas et serait plus indiqué.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
Modifié par Junho le 31/03/2012 à 18:22
Comment Bob 13 une petite explication, je ne comprends pas
0
1- ton énoncé n'est pas clair :
a- soit tu veux calculer le produit de tous les nombres pairs <=15;
b- soit tu veux calculer le produit de tous les nombres impairs <=15;
c- soit tu veux calculer le produit de tous les nombres (pairs ou impairs) <=15
c'est-à-dire !15 (ou !n si c'est bien le sens que je comprends pour n).
Je te joins ci-dessous une version de ton programme pour calculer !n
(factorielle n) :

# include <stdio.h>
main ()
{
int n; /* pour le nombre fourni par l'utilisateur */
int i; /* compteur de nombre de valeur de traitées */
long int Prod; /* calcul du produit*/
i=1;
Prod=1;
printf(" entrer un nombre entier : ");
scanf ("%d",&n);
for (i=1;i<=n; i=i+1)
{
Prod=Prod*i;
i=i+1; /* +1 sur le compteur */;
Prod=Prod*i;
}
printf ("voici son produit : %d\n", Prod*i);
}

Est-ce bien là ce que tu veux ?
0
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
31 mars 2012 à 19:08
J'avais besoin pour calculer le factorielle mais pour le programme, je veux calculer le produit de tous les nombres (pairs et impairs) <=15, c'est exactement ca calculer le produit de tous les nombres (pairs et impairs) <=15.
0
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
31 mars 2012 à 19:11
C- Je veux calculer le produit de tous les nombres (pairs ou impairs) <=15
0
alors voilà le programme le plus simple:

main ()
{
int n; /* pour le nombre fourni par l'utilisateur */
int i; /* compteur de nombre de valeur de traitées */
long int Prod; /* calcul du produit*/
i=1;
Prod=1;
n=15;
for (i=1;i<=n; i=i+1)
{
Prod=Prod*i;
}
printf ("voici son produit : %d\n", Prod*i);
}

Salut
0
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
31 mars 2012 à 19:33
merci je comprends bien mais est-ce qu'on as pas besoin de retourner 0 dans le programme.
0
Si Prod calculé dans le main ci-dessus doit être remonté à un programme "appelant ce main", cela signifie que ce "main" ne peut pas s'appeler "main" mais doit prendre un nom quelconque de fonction et doit alors se terminer par un "return (Prod)" ou "return (&Prod)" suivant le mode d'appel et suivant que Prod aura été déclaré comme variable globale (au programme appelant) ou comme variable locale à la fonction.
0
musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
31 mars 2012 à 19:43
Bonsoir,

Il est vrai que l'énoncé est ambigu.
J'aurais plutôt compris qu'il fallait calculer d'une part le produit des entiers pairs, et d'une autre celui des entiers impairs.
M'enfin, cela n'est qu'une question de compréhension de l'exercice, or, ce qui importe, c'est la méthode.

En effet Junho il faut ajouter un "return 0;" avant la dernière accolade.
Aussi, il ne me semble pas que "long int" existe. C'est soit int, soit long. Et dans notre cas, le(s) résultat(s) est (sont) entier(s) donc on choisira plutôt int.

Cordialement,
0
musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
31 mars 2012 à 19:48
Aussi, on peut initialiser les variables directement à leur création !
C'est à dire qu'au lieu d'avoir :
int n;
int i;
int Prod;
i=1; 
Prod=1; 
n=15; 


On peut écrire :
int i=1;
int Prod=1;
int n=15;


De plus, lorsque des variables sont de même type, elles peuvent être écrites sur une même ligne, séparées par des virgules.
Cela donnerait :
int i=1, Prod=1, n=15 ;


Enfin, il existe une sorte de convention : les variables ne doivent pas commencer par une majuscule. Ce n'est pas interdit, mais la majorité des programmeurs prennent cette habitude, car, par la suite, cela rend les codes plus clairs !
0
Junho Messages postés 22 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 14 juillet 2012
31 mars 2012 à 20:06
merci je vais essayer d'écrire le programme en faisant retourner 0.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
Modifié par fiddy le 31/03/2012 à 23:44
musicetcie,

Tu parles de bonnes habitudes, alors je me permets de te reprendre sur un point.

int i=1, Prod=1, n=15 ;
Oui on peut lorsque c'est de même type, mais ce n'est pas conseillé. Il vaut mieux regrouper sur une ligne les variables qui ont la même logique (par exemple les compteurs, etc.).

Sinon pour info, le type long int existe. On écrit généralement long pour faire plus court. Mais long = long int. De même pour short = short int.
0