Fonction cosinus erronnée...
Yuku
Messages postés
215
Statut
Membre
-
dieng -
dieng -
Bonjour,
Je commence à programmer en C depuis peu, même si j'avais deux ou trois bases il y a longtemps.
J'ai essayé de créer un mini programme d'une vingtaine de lignes, permettant de demander à l'utilisateur deux valeurs, puis de faire le cosinus de ces deux valeurs, et la somme des deux cosinus est le résultat attendu par l'utilisateur...
Seulement, j'ai un problème sur les deux lignes que j'ai indiquées en gras :
Voici mon programme :
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
float resultat, a, b, c ,d;
printf("Valeur du nombre 1?\n");
scanf("%ld\n", &a);
printf("Valeur du nombre 2?\n");
scanf("%ld\n", &b);
cos(a) = c;
cos(b) = d;
resultat = c + d;
printf("La somme des cosinus des deux nombres est donc : %ld\n", resultat);
system("PAUSE");
return EXIT_SUCCESS;
}
Et voici ce que me dit le compilateur :
In function `int main(int, char**)':
13 non-lvalue in assignment
14 non-lvalue in assignment
[Build Error] [main.o] Error 1
PS : je programme avec Dev-C++. Si le problème paraît évident, je vous serais reconnaissant de pas vous moquer xD Tout le monde doit passer par là pour apprendre à programmer...
Bref, merci d'avance !
Je commence à programmer en C depuis peu, même si j'avais deux ou trois bases il y a longtemps.
J'ai essayé de créer un mini programme d'une vingtaine de lignes, permettant de demander à l'utilisateur deux valeurs, puis de faire le cosinus de ces deux valeurs, et la somme des deux cosinus est le résultat attendu par l'utilisateur...
Seulement, j'ai un problème sur les deux lignes que j'ai indiquées en gras :
Voici mon programme :
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
float resultat, a, b, c ,d;
printf("Valeur du nombre 1?\n");
scanf("%ld\n", &a);
printf("Valeur du nombre 2?\n");
scanf("%ld\n", &b);
cos(a) = c;
cos(b) = d;
resultat = c + d;
printf("La somme des cosinus des deux nombres est donc : %ld\n", resultat);
system("PAUSE");
return EXIT_SUCCESS;
}
Et voici ce que me dit le compilateur :
In function `int main(int, char**)':
13 non-lvalue in assignment
14 non-lvalue in assignment
[Build Error] [main.o] Error 1
PS : je programme avec Dev-C++. Si le problème paraît évident, je vous serais reconnaissant de pas vous moquer xD Tout le monde doit passer par là pour apprendre à programmer...
Bref, merci d'avance !
A voir également:
- Fonction cosinus erronnée...
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
10 réponses
Essaye avec :
c=cos(a);
d=cos(b);
Les affectations se font dans cet ordre VariableAAffecter=Affectation.
P.S. Vérifie l'unité d'angle C travaille en radian.
c=cos(a);
d=cos(b);
Les affectations se font dans cet ordre VariableAAffecter=Affectation.
P.S. Vérifie l'unité d'angle C travaille en radian.
Pour info, pi n'est pas implémenté en C, il faut le définir.
Une approximation correcte à 2 10^-7 est 355/113.
Une approximation correcte à 2 10^-7 est 355/113.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup ! En effet, j'avais oublié ce détail... Important !
Cependant... J'ai un autre problème : en conservant exactement le même programme mais en inversant donc variable / affectation comme tu l'as si bien expliqué, le programme est donc compilé.
Mais peu importe les valeurs a et b que j'entre, le résultat final est toujours 0... et quand je mets "%lf" et non "%ld" afin d'avoir les décimales (au cas où le résultat serait arrondi), j'obtiens aussi "0.00000"...
Est-ce normal?
Cependant... J'ai un autre problème : en conservant exactement le même programme mais en inversant donc variable / affectation comme tu l'as si bien expliqué, le programme est donc compilé.
Mais peu importe les valeurs a et b que j'entre, le résultat final est toujours 0... et quand je mets "%lf" et non "%ld" afin d'avoir les décimales (au cas où le résultat serait arrondi), j'obtiens aussi "0.00000"...
Est-ce normal?