2017-02-16 2 views
-1

Je reçois cette erreur, et je suis un débutant dans ce codage, donc je ne sais pas beaucoup. Voici mon programme:Je reçois une erreur: lvalue nécessaire comme opérande gauche de l'affectation

#include <iostream> 1 
using namespace std; 2 
int a,b,k,i,n,c;  3 
int main()   4 
{      5 
cin>>a>>b;   6 
k=0;     7 
for (i=a;i<=b;i=i+1) 8 
{      9  
    n=i;    10 
    c=0;    11       
    while (n>0)  12 
    {     13 
     if (n%2=1) 14 
      c=c+1; 15 
     n=n/10;  16 
    }     17 
    if (c>0)   18 
     k=k+1;  19 
}      20    
cout<<k;    21 
         22 
return 0;    23 
}      24 

L'erreur semble être à la ligne 14! J'utilise Code :: Blocks Version 13.12

+0

Vous * connaissez * la différence entre l'affectation et la comparaison pour l'égalité? Vous faites le premier (assignation). –

+2

Juste une faute de frappe. Connaissez la différence entre '=' et '=='. –

+1

'if (n% 2 = 1)' donne la valeur 1 à 'n% 2'. Conceptuellement, cela n'a pas de sens. Vous vouliez dire 'if (n% 2 == 1)' avec l'opérateur de comparaison. –

Répondre

1

Vous avez utilisé un seul '=' sur la ligne 14, mais uniquement pour l'affectation. Vous faites une comparaison si, donc vous devez utiliser '=='.

if (n % 2 == 1) 
+0

S'il vous plaît ne répondez pas à ces questions. Ils ne sont pas utiles à un public général. –

+0

Juste assez, je suis encore nouveau à ce sujet, je vais garder cela à l'esprit – ChrizNuh

+0

Il ya un vote pour fermer l'option pour ces erreurs typographiques simples. –