Compiler error "lvalue required as left operand of assignment"


 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Compiler error "lvalue required as left operand of assignment"
# 1  
Old 09-14-2012
Compiler error "lvalue required as left operand of assignment"

1. After trying to compile code error is given Lvalue required as left operand of assignment.



2. Relevant commands, code, scripts, algorithms:
if , else if



3. The attempts at a solution (include all code and scripts):
Code:
/*
  File: incircles.cpp
  Created by: James Selhorst
  Creation Date:09/14/12
  Synopsis:  This program reads in three circles and a query point 
  and reports which circles contain the query point.
*/

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
  double x1,y1,x2,y2,x3,y3,x4,y4,a,b,c,dx1,dy1,dx2,dy2,dx3,dy3; // Variable declarations


  
  
  cout<<"Enter x and y coordinates of circle A (2 values):";// prompt and read in circle A center coordinates
  cin>>x1>> y1;
  cout<<"Enter radius of circle A:"; // prompt and read in circle A radius
  cin>>a;
  cout<<"Enter x and y coordinates of circle B (2 values):"; // promt and read in circle B center coordinates
  cin>>x2>>y2;
  cout<<"Enter radius of circle B:"; // prompt and read in circle B radius
  cin>>b;
  cout<<"Enter x and y coordinates of circle C (2 values):"; // prompt and read in circle C center coordinates
  cin>>x3>>y3;
  cout<<"Enter radius of circle C:"; // prompt and read in circle C radius
  cin>>c;
  cout<<"Enter x and y coordinates of query point (2 values):"; // prompt and read in query point
  cin>>x4>>y4;

  dx1=(x4-x1);
  dy1=(y4-y1);
  dx2=(x4-x2);
  dy2=(y4-y2);
  dx3=(x4-x3);
  dy3=(y4-y3);

  if ((sqrt((dx1*dx1)+(dy1*dy1))<=a),(sqrt((dx2*dx2)+(dy2*dy2))<=b),(sqrt((dx3*dx3)=(dy3*dy3))<=c))
    {
      cout<<"Circles A B and C contain point ("<<x4<<","<<y4<<")."<<endl;
    }
  else if ((sqrt((dx1*dx1)+(dy1*dy1))>=a),(sqrt((dx2*dx2)+(dy2*dy2))<=b),(sqrt((dx3*dx3)=(dy3*dy3))<=c))
    {
      cout<<"Circles B and C contain point ("<<x4<<","<<y4<<")."<<endl;
    }
  else if ((sqrt((dx2*dx2)+(dy2*dy2))>=b),(sqrt((dx1*dx1)+(dy1*dy1))<=a),(sqrt((dx3*dx3)=(dy3*dy3))<=c))
    {
      cout<<"Circles A and C contain point ("<<x4<<","<<y4<<")."<<endl;
    }
  else if ((sqrt((dx3*dx3)=(dy3*dy3))>=c),(sqrt((dx1*dx1)+(dy1*dy1))<=a),(sqrt((dx2*dx2)+(dy2*dy2))<=b))
    {
      cout<<"Circles A and B contain point ("<<x4<<","<<y4<<")."<<endl;
    }
  else if ((sqrt((dx1*dx1)+(dy1*dy1))>=a),(sqrt((dx2*dx2)+(dy2*dy2))>=b),(sqrt((dx3*dx3)=(dy3*dy3))>=c))
    {
      cout<<"No circle contains points ("<<x4<<","<<y4<<")."<<endl;
    }
 else if ((sqrt((dx1*dx1)+(dy1*dy1))>=a),(sqrt((dx2*dx2)+(dy2*dy2))>=b),(sqrt((dx3*dx3)=(dy3*dy3))<=c))
   {
     cout<<"Circle C contains points ("<<x4<<","<<y4<<")."<<endl;
   }
 else if ((sqrt((dx1*dx1)+(dy1*dy1))>=a),(sqrt((dx3*dx3)=(dy3*dy3))>=c),(sqrt((dx2*dx2)+(dy2*dy2))<=b))
   {
     cout<<"Circle B contains points ("<<x4<<","<<y4<<")."<<endl;
   }
 else if ((sqrt((dx2*dx2)+(dy2*dy2))>=b),(sqrt((dx3*dx3)=(dy3*dy3))>=c),(sqrt((dx1*dx1)+(dy1*dy1))<=a))
   {
     cout<<"Circle A contains points ("<<x4<<","<<y4<<")."<<endl;   
   }
     


  // Determine location of query point relative to the circles

  return 0;
}


4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

The ohio state university, columbus ohio, USA, YI wang, CSE 1222


Hello, i am trying to compile this code that i put in above and i cant seem to fix the issue of why i keep getting this stupid error. Can anyone help please. The error is on every line that has the if or else if statement, im just not sure how to fix it.
Moderator's Comments:
Mod Comment Please view this code tag video for how to use code tags when posting code and data.

Last edited by Corona688; 09-14-2012 at 12:35 PM..
# 2  
Old 09-14-2012
You have an assignment in the final sqrt calculation of each conditional. Looks like a typo.

Regardless, your code will not give you the correct result. The comma-operator is not a logical-AND.

I suggest that you do all the distance calculations at the beginning, storing the results in variables. It will make the if-statements much more compact and readable. And it will also save on pointless recalculation of unchanging quantities.

Regards,
Alister
# 3  
Old 09-14-2012
Just to make the error plain:

Code:
else if ((sqrt((dx2*dx2)+(dy2*dy2))>=b),(sqrt((dx3*dx3)=(dy3*dy3))>=c),(sqrt((dx1*dx1)+(dy1*dy1))<=a))

I should point out, though, that == doesn't work very well with floating point either. It will be extremely picky. Is 3.000001 equal to 3.000002? No. Only 3.0000001000 will be exactly the same as 3.0000001000. There's also the problem that the same number can appear in several different ways in floating point.

So don't check if floats are equal. Check if they're "close enough" by subtracting them, taking the absolute value, and seeing if the result is less than the maximum distance apart you want:

Code:
#include <math.h>

bool isequal(double a, double b, double accuracy)
{
        return(fabs(a-b)<=accuracy);
}

int main(void)
{
        double a=9.00001, b=9.00002;
        cout << "Equal to 0.00000001 precision? " << isequal(a, b,   0.00000001) <<endl;
        cout << "Equal to 0.0001 precision? " << isequal(a, b,   0.0001) << endl;
}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

2. Programming

"lvalue required as left operand of assignment" error in C

Hey all. I've been working on some fun with C and decided to write a Rock Paper Scissors game. The problem is, that when I try to compile the file, it gives "lvalue required as left operand of assignment" error. The error line is here: for ((point1=0 && point2=0); ((point1=3) || (point2=3));... (4 Replies)
Discussion started by: drouzzin
4 Replies

3. Programming

lvalue required as left operand of assignment

z < 0 ? z= z + 2*r*cos(theta) : z= z - 2*r*cos(theta); Does anyone know what is wrong here? I've got compiler msg: lvalue required as left operand of assignment All variables are "double". I'm using gcc compiler (but I don't think that matters) (5 Replies)
Discussion started by: EmilyTheStrange
5 Replies

4. UNIX for Dummies Questions & Answers

Unix "look" Command "File too large" Error Message

I am trying to find lines in a text file larger than 3 Gb that start with a given string. My command looks like this: $ look "string" "/home/patrick/filename.txt" However, this gives me the following message: "look: /home/patrick/filename.txt: File too large" So, I have two... (14 Replies)
Discussion started by: shishong
14 Replies

5. Shell Programming and Scripting

operand expected (error token is "<")

Hi, i am getting error from below script. Error: s1.sh: line 19: ((: j<: syntax error: operand expected (error token is "<") #!/bin/bash str=$(ps -eaf | grep smon | grep -v grep | awk ' {print $8}' | cut -c10-18) i=1 while do temp=`echo $str|awk '{print $"'$i'"}'` ... (12 Replies)
Discussion started by: lakshmikanthe
12 Replies

6. UNIX for Dummies Questions & Answers

> 5 ")syntax error: operand expected (error token is " error

im kinda new to shell scripting so i need some help i try to run this script and get the error code > 5 ")syntax error: operand expected (error token is " the code for the script is #!/bin/sh # # script to see if the given value is correct # # Define errors ER_AF=86 # Var is... (4 Replies)
Discussion started by: metal005
4 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Programming

Need help compiling in C: lvalue required as left operand of assignment

Hi, I am trying to compile a program (not coded by me), and i'm getting this error: 203: error: lvalue required as left operand of assignment As you may be guessing, the program doesn't compile, the line number 203 is the following: ... (2 Replies)
Discussion started by: Zykl0n-B
2 Replies

9. Solaris

sendmail "root... User address required." error

I'm running sendmail (8.13.8+Sun/8.13.8/Submit) solaris 10. When I send mail to root at the command line (whether I use a full-qualified address or just root), I get the error message root... User address required. Sending mail to root (either at the command line or in a cron job),... (10 Replies)
Discussion started by: csgonan
10 Replies

10. Shell Programming and Scripting

Avoid "++ requires lvalue" Error in Loop Calculation

Hi All, Please help me to perform sum of values in a loop, I am getting following error: "total=0++432907765772: ++ requires lvalue" where actual statement is as : total=$total+$amt where amt can have +ve or -ve values Thanks Sandeepb (3 Replies)
Discussion started by: sandeepb
3 Replies
Login or Register to Ask a Question