more efficient way

This program is running but I am looking for a more efficient way to run this program.
You can see I commented out the code because I think it can work out without that extra code. however, I am a little bit confused.
in the else statement, I am trying to decrement the x value so it becomes x=8 and runs the loop again and decrement again.
But it is not working.
can anyone help me what should I do? thanks.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  #include <iostream>
#include <cmath>

using namespace std;

int main()
{
	int x, y;

	if (x = 9) {
		for (y = 0; y < 9; y++)
			if (3 * pow (x, 2) + 4* pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
			else {
				x--;
				
			}
	}
/*	 if (x = 8) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 7) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 6) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 5) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 4) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 3) {
		 for (y = 0; y < 9; y++)
			 if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				 cout << "x value is : " << x << endl << "y value is: " << y << endl;;
	}
	 if (x = 2) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 1) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout <<"x value is : "<< x <<endl<<"y value is: "<< y<<endl;
	}

	*/

	system("pause");
	return 0;
}
Hello soby96,

On line 8 you define "x" and "y", but do not initialize these variables. On my computer they tend to have the value of "-858993460".

Not that this is a problem with what you have because on line 10 you set x equal to 9. Did you mean if (x == 9)? This also applies to lines 19, 24 and the others.

From line 10 - 18 since everything is only one line the {} are not needed.

Now to stream line the code I would convert the if statements to a switch and have the case statements call a function to do the for loop. Depending on what you want to do you may need one or two functions.

The part of the commented section is repeated often enough to make it a good candidate for a function.

You are using the function "pow" to square a number. It is much simpler to just use "number * number". This would save some overhead calling the "pow" function and eliminate the need for the "cmath" header file.

Hope that helps,

Andy
Topic archived. No new replies allowed.