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
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
A voir également:
- Programmation en C
- Application de programmation - Guide
- Mettre en veille un programme - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation télécommande porte de garage brico depot - Forum Matériel & Système
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
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.
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.
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
31 mars 2012 à 18:09
Merci mais penses -tu que le Prod intialiser a 1 est normale
Prod =Prod*i
Prod =Prod*i
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
31 mars 2012 à 18:14
return 0; comment le metrre avant de fermer le programme.
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
Modifié par Junho le 31/03/2012 à 18:22
Comment Bob 13 une petite explication, je ne comprends pas
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 ?
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 ?
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
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.
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
31 mars 2012 à 19:11
C- Je veux calculer le produit de tous les nombres (pairs ou impairs) <=15
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
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
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
31 mars 2012 à 19:33
merci je comprends bien mais est-ce qu'on as pas besoin de retourner 0 dans le programme.
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.
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
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,
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,
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
31 mars 2012 à 19:48
Aussi, on peut initialiser les variables directement à leur création !
C'est à dire qu'au lieu d'avoir :
On peut écrire :
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 :
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 !
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 !
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
31 mars 2012 à 20:06
merci je vais essayer d'écrire le programme en faisant retourner 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
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.
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.
31 mars 2012 à 18:58