Tutoriales de informática - Abrirllave.com

Abrirllave.com

Ejemplo de lenguaje C - Calificar según nota

Si en lenguaje C se quiere escribir un programa que:

1º) Pida por teclado la nota (real) de una asignatura.

2º) Muestre por pantalla:

Viéndose en pantalla, por ejemplo:

Visualización en pantalla del programa Calificar según nota, resuelto en lenguaje C.

Al introducir una nota menor que cero o mayor que diez, se verá:

Visualización en pantalla del programa Calificar según nota, siendo esta incorrecta, resuelto en lenguaje C.

Varias soluciones: anidando un if dentro de otro if

Una posible solución al problema es:

/* Programa: Calificar según nota (Solución 1) */

#include <conio.h>
#include <stdio.h>

int main()
{
    float nota;

    printf( "\n   Introduzca nota (real): " );
    scanf( "%f", &nota );

    if ( nota >= 5 && nota <= 10 )
        printf( "\n   APTO" );
    else

        /* Inicio del anidamiento */
        if ( nota >= 0 && nota < 5 )
            printf( "\n   NO APTO" );
        else
            printf( "\n   ERROR: Nota incorrecta." );
        /* Fin del anidamiento */

    getch(); /* Pausa */

    return 0;
}

Véase en el código fuente del programa que, la segunda instrucción if, ha sido anidada dentro de la primera. Por otro lado, otra posible solución es:

/* Programa: Calificar según nota (Solución 2) */

#include <conio.h>
#include <stdio.h>

int main()
{
    float nota;

    printf( "\n   Introduzca nota (real): " );
    scanf( "%f", &nota );

    if ( nota < 0 || nota > 10 )
        printf( "\n   ERROR: Nota incorrecta." );
    else

        /* Inicio del anidamiento */
        if ( nota < 5 )
            printf( "\n   NO APTO" );
        else
            printf( "\n   APTO" );
        /* Fin del anidamiento */

    getch(); /* Pausa */

    return 0;
}

Una tercera solución es:

/* Programa: Calificar según nota (Solución 3) */

#include <conio.h>
#include <stdio.h>

int main()
{
    float nota;

    printf( "\n   Introduzca nota (real): " );
    scanf( "%f", &nota );

    if ( nota >= 0 && nota <= 10 )

        /* Inicio del anidamiento */
        if ( nota >= 5 )
            printf( "\n   APTO" );
        else
            printf( "\n   NO APTO" );
        /* Fin del anidamiento */

    else
        printf( "\n   ERROR: Nota incorrecta." );

    getch(); /* Pausa */

    return 0;
}

Como se puede observar, el anidamiento de instrucciones if permite ir descartando valores hasta llegar al bloque de instrucciones que se debe ejecutar.