Probleme langage c
Camille
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
bonjour, cela fait depuis hier 16:00 que je suis bloqué sur un exercice,
Ecrire un programme permettant de saisir un
entier au clavier et d’afficher son logarithme
népérien
Voici mon code:
Quand je compile le résulat est toujours 0
avez vous des suggestions ? Merci d'avance :)
Ecrire un programme permettant de saisir un
entier au clavier et d’afficher son logarithme
népérien
Voici mon code:
#include <stdio.h> #include <math.h> #include <errno.h> void tp7() { int chiffre; int getchar(); printf("Entrez un nombre"); chiffre = getchar(); double logarithme (double getchar(), double base); printf ("resultat = %f \n", getchar()); }
Quand je compile le résulat est toujours 0
avez vous des suggestions ? Merci d'avance :)
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Probleme langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, pourquoi ne pas faire printf de chiffre?
Bonjour,
La ligne 10 déclare une fonction
Ligne 14, on utilise
Ligne 16, c'est la déclaration d'une fonction; Elle n'est ni définie quelque part, ni jamais utilisée et a un premier paramètre d'un type curieux!
Ligne 18, on décide d'afficher comme un flottant, le résultat d'un nouvel appel de la fonction
Il n'y a ici aucun flottant, ni aucun calcul de logarithme népérien, on est très loin de l'énoncé.
La ligne 10 déclare une fonction
getchar(), pourquoi? C'est dans
#include <stdio.h>qu'est déjà déclaré cette fonction.
Ligne 14, on utilise
getchar()pour lire un entier, mais on parle de chiffre et
getchar()retourne en réalité un caractère!
Ligne 16, c'est la déclaration d'une fonction; Elle n'est ni définie quelque part, ni jamais utilisée et a un premier paramètre d'un type curieux!
Ligne 18, on décide d'afficher comme un flottant, le résultat d'un nouvel appel de la fonction
getchar()qui retournera un autre caractère.
Il n'y a ici aucun flottant, ni aucun calcul de logarithme népérien, on est très loin de l'énoncé.
Salut Camille,
La bibliothèque standard du C comprend la fonction
http://www.cplusplus.com/reference/cmath/log/
https://fr.wikibooks.org/wiki/Programmation_C/Math%C3%A9matiques#Logarithmes
Tu as aussi d'autres fonctions logarithmiques et exponentielles accessibles par ce même entête :
http://www.cplusplus.com/reference/cmath/
Visiblement, tu ne comprends pas à quoi sert
Ici, tu dois obtenir une saisie d'un entier, qui peut supposer la saisie de plusieurs chiffres. Tu dois donc utiliser d'autres fonctions pour obtenir ta saisie au clavier.
Vois ton cours ou une documentation de référence sur
Dal
La bibliothèque standard du C comprend la fonction
log()qui permet de calculer le logarithme népérien, accessible par l'entête math.h.
http://www.cplusplus.com/reference/cmath/log/
https://fr.wikibooks.org/wiki/Programmation_C/Math%C3%A9matiques#Logarithmes
Tu as aussi d'autres fonctions logarithmiques et exponentielles accessibles par ce même entête :
http://www.cplusplus.com/reference/cmath/
Visiblement, tu ne comprends pas à quoi sert
getchar()que tu utilises à de nombreuses reprises et de différentes façons très déconcertantes, comme le dit Dalfab. la fonction
getchar()ne t'est d'aucune utilité ici, pour faire ce qu'on attend de toi, ou donnera des résultats inattendus, car elle renvoie les caractères sous la forme d'entiers représentant le code ASCII d'un chiffre ou d'une lettre (donc, par exemple, pour une saisie d'un unique caractère '5', tu obtiendrais un char, qui est un type entier, valant 53 qui est le code ASCII de ce caractère).
Ici, tu dois obtenir une saisie d'un entier, qui peut supposer la saisie de plusieurs chiffres. Tu dois donc utiliser d'autres fonctions pour obtenir ta saisie au clavier.
Vois ton cours ou une documentation de référence sur
scanf()ou
fgets()et
printf(), sur la déclaration de variables et l'usage des variables et évite de faire des copier-coller au hasard, cela marche rarement en C :-)
Dal