# I need help on this c++ problem pls

1. Jul 20, 2006

### spinner

how can i make a student identification number to be a four digit integer and when you type 0 for the identification number it will terminates. thanks

2. Jul 20, 2006

### neurocomp2003

use an unsigned integer. when the id equals 0 break; or use a while loop.

3. Jul 21, 2006

### spinner

while (idnum=4)
{
printf("Input ID number");
scanf("%d", &idnum);

if (idnum = 0)
break;
}
printf("ID number %d", idnum);

any correction from my while statement coz i cant get the exact 4 digit integer for the id number thanks in advance for your help

Last edited: Jul 21, 2006
4. Jul 21, 2006

### Staff: Mentor

You shouldn't need a loop for this. Just read an integer and test it with an if-statement to see if it's in the proper range. What are the largest and smallest possible values for a four-digit ID number?

5. Jul 21, 2006

### spinner

ok thanks jt ill try to work on it

6. Jul 21, 2006

### neurocomp2003

oh i thought you wanted to keep taking in ID# untill 0...other wise there's no point in using the word "termination". In the while loop do you know which equals sign to use? You want the comparative/relational operator. same with teh if statement. My bad you just want it within a range. ya what jtbell said is correct

7. Jul 21, 2006

### spinner

my problem states that "student identification numbers are four-digit integers. input should terminate when i type 0 for the student identification number" sorry guys im having a hard time wth the problem need help..

8. Jul 21, 2006

### neurocomp2003

Well there are two scenarios from the posed question.

[0] That you need only to accept 1 ID and check that it is within range
[1] That you keep accepting IDs within range until 0 is inputted.(thus a loop)
the sentence "input should terminate when i type 0" to me would imply the second scenario for loop. Perhaps you should ask your professor(i'm guessing this is a homework problem) to clarify

9. Jul 21, 2006

### Staff: Mentor

Yeah, I was focusing on the four-digit integer requirement and your first guess at a solution which looked like you were trying to read four digits, one digit at a time.

If you've been studying loops in class just now, then neurocomp2003's scenario [2] is probably what you want. But if that doesn't clearly agree with the full statement of the assignment, then you should definitely ask your instructor.

10. Jul 21, 2006

### spinner

to jt and neo thanks guys for the help...im almost near with solution...actually its my midterm exam. its the only one that i left unsolved the rest are doin fine...best regards to both of you guys...

11. Jul 21, 2006

### chroot

Staff Emeritus
BE VERY CAREFUL with your equals signs in if and while statements. The following if statement:

if (idnum = 0)

WILL NOT WORK. The single '=' means assignment; the result of this statement is that idnum is actually assigned the value 0, not compared with 0. The if statement will never run, because 0 means false.

What you want, instead, is the '==' operator, which means comparison:

if (idnum == 0)

- Warren

12. Jul 21, 2006

### Staff: Mentor

Are you allowed to use outside assistance on exams?

13. Jul 21, 2006

### buddyholly9999

Hahahahaha..............

14. Jul 23, 2006