I am trying to solve a very simple equation in c++ by brute force. The basic idea is to run up or down the value of x until the left side of the equation is equal to the right side. I am not getting any errors, but the value of x is always either 0.01 or -0.01. I assume that my do/while loop is flawed, but you are all probably more experienced than I am, so any help is appreciated.
#include <iostream>
using namespace std;
int main()
{
double x, y, z, q, w;
x = 0;
cout << "enter y*x + q = z*x + w in order of appearance" << endl;
cin >> y;
cin >> q;
cin >> z;
cin >> w;
if ((y-z)/(w-q) > 0) // checks if x is positive
{
do
{
(x = x + 0.01);
} while ((y * x + q) == (z * x + w));
}
else if ((y - z) / (w - q) < 0) // checks if x is negative
{
do
{
(x = x - 0.01);
} while ((y * x + q) == (z * x + w));
}
else
{
x = 0;
}
cout << "x is " << x << endl;
return 0;
}
Thanks!