[Programme C] Produit des doubles des n premiers entiers
Résolu/Fermé
Icylph
Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
8 mai 2014
-
24 févr. 2014 à 19:36
cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 - 25 févr. 2014 à 10:05
cocodu67... Messages postés 3162 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 20 novembre 2024 - 25 févr. 2014 à 10:05
A voir également:
- Écrire un programme qui calcule la somme des nombres de 1 à n
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Ecrire en gras sur whatsapp - Guide
- Comment calculer la moyenne sur excel - Guide
- Programme demarrage windows 10 - Guide
3 réponses
cocodu67...
Messages postés
3162
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
20 novembre 2024
145
24 févr. 2014 à 20:05
24 févr. 2014 à 20:05
Lu'
Essaye avec ça
Essaye avec ça
int prodoubl(int n) { int Resultat = 0; int i; if(n<1) return 0; else { for(i=0; i<=n;i++) Resultat = Resultat + i; return Resulat; } }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 févr. 2014 à 21:01
24 févr. 2014 à 21:01
Bonjour,
main()
Le prototype du main() sans argument est : int main(void)
int n;
A mettre dans main() pour deux raisons :
1/ On évite les variables globales
2/ Tu passes la variable en paramètre, donc tu ne te sers pas de la spécificité globale.
N'oublie pas le return 0; à la fin du main() pour dire que tout s'est bien déroulé.
else for(n;n>1;n--)return 2*n*prodoubl(n-1);
Tu mélanges deux algorithmes : l'approche récursive et l'approche itérative. Que souhaites-tu implémenter ?
Cdlt,
main()
Le prototype du main() sans argument est : int main(void)
int n;
A mettre dans main() pour deux raisons :
1/ On évite les variables globales
2/ Tu passes la variable en paramètre, donc tu ne te sers pas de la spécificité globale.
N'oublie pas le return 0; à la fin du main() pour dire que tout s'est bien déroulé.
else for(n;n>1;n--)return 2*n*prodoubl(n-1);
Tu mélanges deux algorithmes : l'approche récursive et l'approche itérative. Que souhaites-tu implémenter ?
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 févr. 2014 à 21:45
24 févr. 2014 à 21:45
J'ai relu par hasard ton post. Il manque d'autres éléments
Petite question : dans le titre, tu parles du produits, ensuite tu parles de sommes ?
Ensuite tu parles de "nombre premier"... Où as-tu mis cette partie dans ton programme ?
Petite question : dans le titre, tu parles du produits, ensuite tu parles de sommes ?
Ensuite tu parles de "nombre premier"... Où as-tu mis cette partie dans ton programme ?
Icylph
Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
8 mai 2014
Modifié par Icylph le 24/02/2014 à 23:04
Modifié par Icylph le 24/02/2014 à 23:04
OMG... A 19h30 j'étais déjà fatigué au point d'écrire n'importe quoi...
En fait je parlais bien de produits et des n premiers nombres entiers, pas des nombres premiers.
Au passage merci pour tes interventions : tes remarques dont je prendrais note pour mes futurs programmes et tes questions qui m'ont finalement permis de me rendre compte des mes erreurs dans ce programme.
Je m'en vais de ce pas poster la correction et aller me coucher avant d'écrire d'autres aberrations.
Icylph, ou comment créer des problèmes la ou il n'y en a pas.
En fait je parlais bien de produits et des n premiers nombres entiers, pas des nombres premiers.
Au passage merci pour tes interventions : tes remarques dont je prendrais note pour mes futurs programmes et tes questions qui m'ont finalement permis de me rendre compte des mes erreurs dans ce programme.
Je m'en vais de ce pas poster la correction et aller me coucher avant d'écrire d'autres aberrations.
Icylph, ou comment créer des problèmes la ou il n'y en a pas.
Icylph
Messages postés
6
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
8 mai 2014
Modifié par Icylph le 24/02/2014 à 23:18
Modifié par Icylph le 24/02/2014 à 23:18
Bon et bien grâce à mes deux sauveurs j'ai pu modifier mon programme de façon à ce qu'il soit fonctionnel. Je vous donne donc le code source au passage :
Merci encore à fiddy et coco pour votre aide.
int prodoubl(int n){
int i=1;
if(n<1)return 0;
else for(n;n>0;n--)i=i*n*2;
return i;
}
int main(void){
int n;
printf("Entrez un nombre : ");
scanf("%d", &n);
printf("Le produit des doubles des %d premiers entiers est %d\n", n, prodoubl(n));
return 0;
}
Merci encore à fiddy et coco pour votre aide.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 févr. 2014 à 23:37
24 févr. 2014 à 23:37
Ah, c'est beaucoup mieux :-).
Deux derniers petits conseils :
for(n;n>0;n--)i=i*n*2;
Bizarre ton initialisation qui fait rien. Autant mettre : for(;n>0;n--) i=i*n*2;
J'irais même plus loin en te conseillant d'utiliser une bête boucle while.
Et ton i, tu pourrais même le déclarer dans le else pour en réduire sa portée.
Et là, c'est parfait ;-)
Cdlt
Deux derniers petits conseils :
for(n;n>0;n--)i=i*n*2;
Bizarre ton initialisation qui fait rien. Autant mettre : for(;n>0;n--) i=i*n*2;
J'irais même plus loin en te conseillant d'utiliser une bête boucle while.
Et ton i, tu pourrais même le déclarer dans le else pour en réduire sa portée.
Et là, c'est parfait ;-)
Cdlt
cocodu67...
Messages postés
3162
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
20 novembre 2024
145
25 févr. 2014 à 10:05
25 févr. 2014 à 10:05
Ah mince j'avais mal lus.
Content de voir que ça t'as quand même aidé^^
Content de voir que ça t'as quand même aidé^^
24 févr. 2014 à 22:12
24 févr. 2014 à 22:44