[Langage C]Comment faire...?
Fermé
Yuku
Messages postés
199
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
22 mars 2012
-
16 oct. 2008 à 20:06
saly_inf Messages postés 44 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008 - 16 oct. 2008 à 22:01
saly_inf Messages postés 44 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008 - 16 oct. 2008 à 22:01
A voir également:
- [Langage C]Comment faire...?
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
5 réponses
Yuku
Messages postés
199
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
22 mars 2012
4
16 oct. 2008 à 20:10
16 oct. 2008 à 20:10
Oups au temps pour moi, l'erreur était là :
}while(Compteur <= k);
Encore désolé pour le dérangement !
}while(Compteur <= k);
Encore désolé pour le dérangement !
Alixx
Messages postés
93
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
23 février 2023
16
16 oct. 2008 à 20:12
16 oct. 2008 à 20:12
Bonjour,
Je ne suis pas une experte mais est-ce que le problème ne pourrait pas venir du fait que dans ta fonction SerieHarmonique, tu as mis : Resultat += (1.0/Compteur); et je me demande s'il ne reconnaît pas le "." comme un opérateur numérique et que du coup, il fait 1x0/Compteur.
Essaye d'enlever le ".0"
Je ne suis pas une experte mais est-ce que le problème ne pourrait pas venir du fait que dans ta fonction SerieHarmonique, tu as mis : Resultat += (1.0/Compteur); et je me demande s'il ne reconnaît pas le "." comme un opérateur numérique et que du coup, il fait 1x0/Compteur.
Essaye d'enlever le ".0"
Yuku
Messages postés
199
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
22 mars 2012
4
16 oct. 2008 à 21:16
16 oct. 2008 à 21:16
Non, d'ailleurs parfois le 2.0 à la place du 2 par exemple peut être extrêmement utile lorsqu'il s'agit de définir un calcul en float/double et non en int !
Merci d'avoir essayé de m'aider quand même :)
Merci d'avoir essayé de m'aider quand même :)
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
4
16 oct. 2008 à 21:25
16 oct. 2008 à 21:25
salut...
comment pour ton programme ... il marche ou non?
@+
comment pour ton programme ... il marche ou non?
@+
Yuku
Messages postés
199
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
22 mars 2012
4
16 oct. 2008 à 21:34
16 oct. 2008 à 21:34
Oui, tout fonctionne en remplaçant dans les dernières lignes le
par
Du coup, voici le code exact :
}while(Compteur != k);
par
}while(Compteur <= k);
Du coup, voici le code exact :
#include <stdio.h> #include <stdlib.h> using namespace std; double SerieHarmonique(double k); int main(int argc, char *argv[]) { int K = 0; double resultat = 0; printf("Ce programme aditionne un nombre K de termes selon la suite suivante :\n1+(1/2)+(1/3)+...+(1/K)\n\nEntrez un nombre K... "); scanf("%d", &K); resultat = SerieHarmonique(K); printf("\nLe resultat de la suite en fonction de K = %d est %.1lf.\n\n", K, resultat); system("PAUSE"); return EXIT_SUCCESS; } double SerieHarmonique(double k) { int Compteur = 1; double Resultat = 0; do{ Resultat += (1.0/Compteur); Compteur++; }while(Compteur <= k); return Resultat; }
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
4
16 oct. 2008 à 21:39
16 oct. 2008 à 21:39
c trés bien ...
je veux seulement savoir pourqoi vous mettez double?
est_ce que "double==int"?
@+
je veux seulement savoir pourqoi vous mettez double?
est_ce que "double==int"?
@+
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
16 oct. 2008 à 21:48
16 oct. 2008 à 21:48
Salut,
Non int représente les entiers et double les flottants doubles.
1/k est une fraction non entière. Il faut donc utiliser des réels et non des entiers.
Non int représente les entiers et double les flottants doubles.
1/k est une fraction non entière. Il faut donc utiliser des réels et non des entiers.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Yuku
Messages postés
199
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
22 mars 2012
4
16 oct. 2008 à 21:47
16 oct. 2008 à 21:47
Non, justement non.
Un int correspond aux entiers, soit 1, 2, 3, 4...
Un double (ou long) correspond aux réels, soit 1, 2, 3, 4... mais aussi 2.5, 6.98, 9.13131, etc...
Donc explication des deux double principaux :
- Le double pour définir la variable Resultat correspond au fait que logiquement, cette variable a toutes les chances d'être un réel, sauf si K = 1. Il faut donc un réel, parce que si on met un int et k =3, on va avoir ça :
1/1 + 1/2 + 1/3 = 1 + 0.5 + 0.3 = 1.8 en vrai... = mais 1 à l'écran ! (les int ne prennent pas en compte les virgules !)
- Le double de la fonction SerieHarmonique correspond au fait qu'une fonction doit toujours être du type de ce qu'elle retourne. Or, comme elle retourne la variable Resultat (et je viens d'expliquer au dessus pourquoi c'est un double), alors elle est de type double :)
Un int correspond aux entiers, soit 1, 2, 3, 4...
Un double (ou long) correspond aux réels, soit 1, 2, 3, 4... mais aussi 2.5, 6.98, 9.13131, etc...
Donc explication des deux double principaux :
- Le double pour définir la variable Resultat correspond au fait que logiquement, cette variable a toutes les chances d'être un réel, sauf si K = 1. Il faut donc un réel, parce que si on met un int et k =3, on va avoir ça :
1/1 + 1/2 + 1/3 = 1 + 0.5 + 0.3 = 1.8 en vrai... = mais 1 à l'écran ! (les int ne prennent pas en compte les virgules !)
- Le double de la fonction SerieHarmonique correspond au fait qu'une fonction doit toujours être du type de ce qu'elle retourne. Or, comme elle retourne la variable Resultat (et je viens d'expliquer au dessus pourquoi c'est un double), alors elle est de type double :)
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
4
16 oct. 2008 à 22:01
16 oct. 2008 à 22:01
salut..
je vous remercie pour vos repenses ... elles contiennent plusieurs infos qui vont m'aider vraiment ...
merci bien autrefois.....
@+
je vous remercie pour vos repenses ... elles contiennent plusieurs infos qui vont m'aider vraiment ...
merci bien autrefois.....
@+