Intenté escribir un programa para el grado escolar y solo refleja A+

programación


C++
#include<stdio.h>

int main()
{
    int marks;
    printf("Enter the Marks:");
    scanf("%d", &marks);

    if("marks >= 95"){
        printf("Grade is A+ \n");
    }
    else if("marks > 80 && marks < 95"){
        printf("Grade is B+ \n");
    }
    else if("marks > 70 && marks < 80"){
    printf("Grade is B \n");
    }
    else {
        printf("Grade is C \n");
    }
    printf("Thank you!");
    return 0;
}

Lo que he probado:

He aprendido sobre la función if y else if. Intenté compilar el código y no se ejecuta como debería.

Solución 1

C++
if("marks >= 95"){
   ^           ^

has puesto tu if expresiones entre comillas dobles, lo que significa que nunca serán evaluadas*. Simplemente elimine las comillas para que el compilador pueda crear la prueba de expresión adecuada.

*En realidad, porque las cuerdas no están NULL siempre evalúan como TRUE.

Solución 2

if y else if no son funciones. Son construcciones del lenguaje.

Dijiste que aprendiste sobre if, pero no suficiente. NO ponga sus expresiones condicionales entre comillas.

C++
if("marks >= 95"){

se convierte

C++
if(marks >= 95)
{

Como eres un principiante, te sugiero ALTAMENTE que coloques la llave de apertura en su propia línea para que puedas realizar un seguimiento más fácil de qué llaves se alinean entre sí.

C++
if (marks >= 95)
{
    printf("Grade is A+ \n");
}

Solución 3

Para añadir a lo dicho, es casi seguro que tienes una herramienta que te podría ayudar: se llama depurador. La forma en que lo use depende de su sistema compilador, pero una búsqueda rápida en Google para buscar el nombre de su IDE y “depurador” debería brindarle la información que necesita. Lo que hace es permitirle ejecutar su código línea por línea y observar las variables para ver qué contienen y seguir a dónde va el código mientras se ejecuta.

Coloque un punto de interrupción en la primera línea de la función y ejecute su código a través del depurador. Luego mire su código y sus datos y determine qué debería suceder manualmente. Luego, realice un solo paso en cada línea para verificar que lo que esperaba que sucediera sea exactamente lo que sucedió. Cuando no es así, es cuando tienes un problema y puedes retroceder (o ejecutarlo nuevamente y observar más de cerca) para descubrir por qué.

Lo sentimos, pero no podemos hacer eso por usted. Es hora de que aprenda una habilidad nueva (y muy, muy útil): ¡depurar!

コメント

タイトルとURLをコピーしました