Comprends pas cette erreur de compilati
remi
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
les gars , regarder ce programme , lorsque je compile , cela me genere les erreurs que je ne saisi pas .
ou est le probleme? voici l'erreur que le compilateur me retourne au niveau de linstruction if n%2==0
C:\remi\lehr_c++\nombre_premier.cpp
[Warning] In function `int main()':
14 C:\remi\lehr_c++\nombre_premier.cpp
invalid operands of types `double' and
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main( )
{
double j, n;
for(j=0; j<=2; j++)
{
n=pow(2,j)-1;
if (n%2==0)
printf("%f",n);
}
getch();
return 0;
}
ou est le probleme? voici l'erreur que le compilateur me retourne au niveau de linstruction if n%2==0
C:\remi\lehr_c++\nombre_premier.cpp
[Warning] In function `int main()':
14 C:\remi\lehr_c++\nombre_premier.cpp
invalid operands of types `double' and
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main( )
{
double j, n;
for(j=0; j<=2; j++)
{
n=pow(2,j)-1;
if (n%2==0)
printf("%f",n);
}
getch();
return 0;
}
A voir également:
- Comprends pas cette erreur de compilati
- Erreur upes 1025 - Forum Téléviseurs
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur 0x80070643 - Accueil - Windows
2 réponses
Salut,
Je crois que tu devrais declarer ton n comme entier, je crois avec integer ou int, je ne me rappelle pas, ou bien faire un cast.
Je crois que tu devrais declarer ton n comme entier, je crois avec integer ou int, je ne me rappelle pas, ou bien faire un cast.
salut
Il n'y a pas de problème avec "j" dans une boucle tu met ce que tu veux.
par contr j++ ne te renvoi pas l'entier suivant, mais le reel suivant.
En revanche "n" doit être un entier pour pouvoir utilisé le modulo.
double ne permet pas vraiment d'utiliser des grand nombre, tu as un problème de résolution, tu as un certain nombre de chiffre significatif : si n(double) est trop grand sa valeur des unité est oublié. pour shématisé, il y a un "n" minimum tel que : n+1.==n est vrai.
je te conseil donc de déclarer n comme long int si tu veux des nombre négatif, ou "unsigned long int" si tu ne veux que des positifs. Ces types ont déjà de grandes limites.
Il n'y a pas de problème avec "j" dans une boucle tu met ce que tu veux.
par contr j++ ne te renvoi pas l'entier suivant, mais le reel suivant.
En revanche "n" doit être un entier pour pouvoir utilisé le modulo.
double ne permet pas vraiment d'utiliser des grand nombre, tu as un problème de résolution, tu as un certain nombre de chiffre significatif : si n(double) est trop grand sa valeur des unité est oublié. pour shématisé, il y a un "n" minimum tel que : n+1.==n est vrai.
je te conseil donc de déclarer n comme long int si tu veux des nombre négatif, ou "unsigned long int" si tu ne veux que des positifs. Ces types ont déjà de grandes limites.
enfin qu'est que un cast