es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de carácter incorrecto, incluso cuando el carácter es correcto.

Tengo una tarea sobre operaciones de matrices y no puedo entender qué está mal en mi código, lo cual hace que mi programa diga que el carácter es incorrecto, aunque es correcto. ¿Podrías ayudarme, por favor?
Gracias.

if(scanf(" %c", &symbol) == 1)              //input symbol with error handling
    {
        if (symbol != '*' || symbol != '+' || symbol != '-')
        {
            printf("[%c]\n", symbol);
            fprintf(stderr, "Error: Chybny vstup [Symbol]!\n");
            return 100;
        }
    }

Descripción de la imagen

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema en tu código está en el operador lógico que se utiliza en la instrucción if. La condición symbol != '*' || symbol != '+' || symbol != '-' siempre se evaluará como verdadera, porque si una de las comparaciones es verdadera, entonces toda la declaración en su conjunto será verdadera.

    Para solucionar esto, debes utilizar el operador lógico “y” (&&) en lugar del operador lógico “o” (||). La instrucción if corregida debería lucir así:

    if (symbol != '*' && symbol != '+' && symbol != '-')
    

    De esta manera, te asegurarás de que el código solo entre en la instrucción if si symbol no es igual a ninguno de los caracteres especificados.

Comments are closed.