如果是else语句,则遇到C编程问题

时间:2018-03-20 04:28:09

标签: c

当我键入M或F时,它会直接跳到循环的“无效选项”部分,而不是打印特定文本。任何意见都表示赞赏。

    #include <stdio.h>
    int main() {

      int MorF; //gender choice

       printf("_____________________________________\n\n"); 
       printf("Pick a gender. Type: M for Male or F for Female\n");
       scanf(" %d" , &MorF);
        if ( MorF == 'm' || MorF == 'M' ) { 
           printf("You chose Male\n");
       } else if ( MorF == 'f' || MorF == 'F' ) {
           printf("You chose Female\n");
       } else {
        printf("Invalid Option\n");  
}
printf("______________________________________\n\n");

}

2 个答案:

答案 0 :(得分:0)

https://www.tutorialspoint.com/c_standard_library/c_function_getchar.htm

您可能希望使用getchar或类似的东西代替scanf,或者使用%c代替scanf。现在,似乎你要求一个int,但检查字符输入。

答案 1 :(得分:0)

matrix格式说明符将扫描以10为底的整数。您要一个%dchar的正确格式说明符是char,正确的格式 string 可以避免无限循环,因为%c找不到有效的输入,并留了下来scanf中的stdin。也就是说,如果您坚持使用" %c"而不是scanfgetchar