【问题标题】:Why when i put the right input the switch statement get ignored为什么当我输入正确的输入时,switch语句会被忽略
【发布时间】:2021-04-16 13:14:38
【问题描述】:

输出:

Select your sign Tom:        [X]    or    [O]
Y
ERROR ENTER A DIFFERENT CHARACTER
X
Player 2 = O    

但我想要这样:

Select your sign Tom:        [X]    or    [O]
Y
ERROR ENTER A DIFFERENT CHARACTER
X
Player 1 = X
Player 2 = O 
printf("Select your sign %s:        [X]    or    [O]\n", PLAYER1);
        scanf(" %c", &P1_SIGN);

            do{
                switch (P1_SIGN) {          //entrata segni

                case 'X':
                    puts("Player 1 = X\n");
                    P1_SIGN = 'X';
                    break;

                case 'x':
                    puts("Player 1 = X\n");
                    P1_SIGN = 'X';
                    break;

                case 'O':
                    puts("Player 1 = O\n");
                    P1_SIGN = 'O';
                    break;

                case 'o':
                    puts("Player 1 = O\n");
                    P1_SIGN = 'O';
                    break;
                
                default:
                    puts("ERROR ENTER A DIFFERENT CHARACTER");
                    scanf(" %c", &P1_SIGN);
                    break;
                    
            }} while(P1_SIGN != 'X' && P1_SIGN != 'x' && P1_SIGN != 'O' && P1_SIGN != 'o');

            if (P1_SIGN == 'X' || P1_SIGN == 'x') {

                puts("Player 2 = O\n");
            } else {

                puts("Player 2 = X\n");
            }          

【问题讨论】:

    标签: c visual-studio while-loop switch-statement do-while


    【解决方案1】:

    您的scanf()s 位置错误。

    第二个scanf() 将读取输入X,它会使do-while 循环的条件为假。因此,循环体不会再次运行,因此不会打印Player 1 = X

    您应该删除您的两个scanf()s,而不是在do-while 循环中,在switch 语句之前添加一个scanf()

    
                do{
                    scanf(" %c", &P1_SIGN); // put scanf() here
                    switch (P1_SIGN) {          //entrata segni
    

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多