4.16 LAB: Brute force equation solver C++

I have an assignment on zybooks for my c++ coding course and whenever I run my code it outputs every outcome no matter if it’s right or wrong. My Code:

#include <iostream>
using namespace std;

int main() {
   int x1;
   int y1;
   int ans1; 
   int x2;
   int y2;
   int ans2;
   int x;
   int y;
   
   cin >> x1 >> y1 >> ans1;
   cin >> x2 >> y2 >> ans2;
   
  for (x = -10; x <= 10; x++) {
     for (y = -10; y <= 10; y++) {
        if ((ans1 = (x1 * x) + (y1 * y)) = (ans2 = (x2*x) + (y2*y))) {
           cout << "x = " << x << ", " << "y = " << y << endl;
        }
     }
  }
  
  
   return 0;
}

The instructions are: Numerous engineering and scientific applications require finding solutions to a set of equations. Ex: 8x + 7y = 38 and 3x – 5y = -1 have a solution x = 3, y = 2. Given integer coefficients of two linear equations with variables x and y, use brute force to find an integer solution for x and y in the range -10 to 10.

Ex: If the input is:

8 7 38
3 -5 -1

the output is:

x = 3, y = 2

Use this brute force approach:

For every value of x from -10 to 10
   For every value of y from -10 to 10
      Check if the current x and y satisfy both equations. If so, output the solution, and finish

Ex: If no solution is found, output:

There is no solution

Assume the two input equations have no more than one solution.

Then when I run the program my output is:

x = -10, y = -10
x = -10, y = -9
x = -10, y = -8
...

going all the way to x = 10 and y = 10

Answer

Here, I had solved it as simple as I can and commented some of the logics.

#include <iostream>
using namespace std;

int main() {
   int x1;
   int y1;
   int ans1; 
   int x2;
   int y2;
   int ans2;
   int x;
   int y;
   
    cin >> x1 >> y1 >> ans1;
    cin >> x2 >> y2 >> ans2;
   int flag = 0;
  for (x = -10; x <= 10; x++) {
     for (y = -10; y <= 10; y++) {
        if (ans1 == (x1 * x) + (y1 * y) &&  ans2 == (x2*x) + (y2*y) ) { /*if we got the root of 1st equation then using bitwise and we have to compare that with another equation*/
           cout << "x = " << x << ", " << "y = " << y << endl;
           flag=1; /* If we found the ans then we will raise the flag to 1, So after the end of loop it'll not print the below statement*/
     break;
        }
     }
  }
  if(flag==0){
      cout<<"There is no solutionn";
  }
  
   return 0;
}