can someone tell me what's wrong with this code. The value is being stored in 'ch' but if statement is unable to validate it.
scanf(" %c", &ch);
if (ch == 4){
printf("Correct Answer \n");
score ;
}
else{
printf("Wrong Answer \n");
}
CodePudding user response:
%c means you are expecting a character.
So a 4 you input, is not an integer 4, but a character '4'.
Simply check for ch == '4'
CodePudding user response:
Note that char is a numeric type, so this will compile and run, but not do what's expected because we've read a char (with format specifier %c into a char variable ch, but then compare it to the number 4 rather than the character '4'.
You should also get in the habit of checking the return value of scanf as a failure to read into ch if it's uninitialized will lead to unexpected behavior.
if (scanf(" %c", &ch) != 1) {
// Something to handle the error.
}
if (ch == '4') {
printf("Correct Answer \n");
score ;
}
else {
printf("Wrong Answer \n");
}
