Please help, while loop combination to end

How do I make a three integer combination to exit the while. When using the code that I have, as soon as even enter one nine it ends the program


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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
  #include <iostream>

using namespace std;

void introduction();

void printmyname(int sum);

int findsum (int,int,int);

int howmanyeven(int,int,int);



int main()


{
    int x=0, y=0, z=0, printsum=0,even=0,datasets=0;

introduction();

cout<<endl;

while(x!=9, y!=9, z!=9)     //while loop which creates a way to end program.
                            //It ends the program when user enter three nines
 {                           //for the integers.




cout <<"Please enter 3 integers, positive, negative, or zero."<<endl;
cin>>x>>y>>z;
cout<<"The original integers are "<<x<<", "<<y<<", "<<z<<", "<<endl;



printsum=findsum(x,y,z);


cout<<"The sum is "<<printsum<<endl;

printmyname(printsum);

cout<<endl;



even=howmanyeven(x,y,z);
cout<<"There is/are "<<even<<"even numbers"<<endl<<endl<<endl;

datasets++;


 }

 cout<<datasets<<" data sets were processed";


}


void introduction() //This function has no return value, it simply prints
                    //and explains what the program will be doing.
    {
    cout<<  "The program begins with asking the user to enter three integers."<<endl;
    cout<<  "It then determines the sum of the two largest out of the three "<<endl;
    cout<<  "integers. Using the sum to determine the amount of times that your"<<endl;
    cout<<  "name will  be printed, however if the sum is equal to or below zero,"<<endl;
    cout<<  "and if the sum is above 10, the program will print a message "<<endl;
    cout<<  "which will say that it is not possible to print the name. Afterwards"<<endl;
    cout<<  "it will determine how of the three integers were even numbers."<<endl;
    }


int findsum(int a,int b,int c)  //This function determines the sum
    {                               //of the two largest integers out of three
    int sum;


    if ( a < b )
    {
        int temp = a; a = b; b = temp;
    }



    if ( b < c )
    {
        int temp = b; b = c; c = temp;
     }

    sum =( a + b );

    return sum;

    }


void printmyname(int sum)
            {                     //This function will take the sum of the two
                                  //largest integers, and use it as a reference
    if(sum>10 || sum<=0)          //as to how many times your name will be printed.
    {                             //If the sum is less than or equal to zero, and if the
                                  //sum is above 10, it will print a message saying that
                                  //it is not possible to print the name

        cout<<"it is not possible to print the name in this case";


    }
    else
    {







    int x;

    for(x=1; x<=sum; x++)

    cout<<"Eugene Sokoletsky"<<endl;
    }

            }



int howmanyeven(int e, int f, int g)
    {

    int evennum=0;      //This function will determine, how many of the
                        //integers that were entered are even.
    if(e%2==0)
        evennum++;

    if(f%2==0)
        evennum++;

    if(g%2==0)
        evennum++;

    return evennum;

    }





Last edited on
as soon as even enter one nine it ends the program

doesn't seem to be the case in the first trial below

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
The program begins with asking the user to enter three integers.
It then determines the sum of the two largest out of the three
integers. Using the sum to determine the amount of times that your
name will  be printed, however if the sum is equal to or below zero,
and if the sum is above 10, the program will print a message
which will say that it is not possible to print the name. Afterwards
it will determine how of the three integers were even numbers.

Please enter 3 integers, positive, negative, or zero.
9
2
3
The original integers are 9, 2, 3,
The sum is 12
it is not possible to print the name in this case
There is/are 1even numbers


Please enter 3 integers, positive, negative, or zero.
2
3
4
The original integers are 2, 3, 4,
The sum is 7
Eugene Sokoletsky
Eugene Sokoletsky
Eugene Sokoletsky
Eugene Sokoletsky
Eugene Sokoletsky
Eugene Sokoletsky
Eugene Sokoletsky

There is/are 2even numbers


Please enter 3 integers, positive, negative, or zero.
9
9
9
The original integers are 9, 9, 9,
The sum is 18
it is not possible to print the name in this case
There is/are 0even numbers


3 data sets were processed
Process returned 0 (0x0)   execution time : 65.344 s
Press any key to continue.
Last edited on
Hello esokoletsky,

The use of the comma operator is not the best way to check your variables. I think what you want is: while(x!=9 && y!=9 && z!=9), but this is not the best place to be checking to end the program.

http://www.cplusplus.com/doc/tutorial/operators/

When the program first runs "x, y and z" all equal zero so the while loop will execute then on line 33 you would enter your 9 9 9, but the while loop will process this before it gets back to line 25 to check for 9 9 9. By then it is to late to end the program.

What you need is something after line 33 to check the numbers entered like:

1
2
if (x == 9 && y == 9 && z == 9)
    break;
.

Hope that helps,

Andy
Last edited on
Thank you!
Topic archived. No new replies allowed.