AIURA en C: IF ELSE ANIDADO VS IF ELSE IF


chavalito

Miembro muy activo
Noder
A ver si alguien me dice porque esta bullshiat no compila:

Código:
/*
Programa que calcule la nota final d una asignatura, EL programa pide que introduzca las siguientes notas teoria, seminarios y pracitcas. Calcular nota final mediante esta formula
*
* nota final= 0,4 x teoria + 0,3 x seminaris + 0,3 x pràctiques
*
* El programa ha de donar la nota segons:
*
* suspes entre 0,00 i 4,99
* aprovat entre 5'00 i 699
* notable entre 7,00 i 8'99
* excelent entre 8'50 i 9'99
* Matricula d'honor 10
*/


#include <stdio.h>

int main()
{
    float nota, teoria, seminaris, practiques;
   
    printf ("\nIntrodueix quina nota has tret a teoria\n");
    scanf ("%.2f", &teoria);
    printf ("\nIntrodueix quina nota has tret a seminaris\n");
    scanf ("%.2f", &seminaris);
    printf ("\nIntrodueix quina nota has tret a practiques\n");
    scanf ("%.2f", &practiques);
   
    nota= 0,4*teoria + 0,3* seminaris + 0,3 * practiques;
   
   
   
   
    /*     PORQUE COJONES NO SE PUEDE SEGUIR ESTA ESTRUCTURA???*/
   
    if ( nota >= 0,00 && nota <= 4,99 ){
        printf ( " :( Suspendido ");
    }
   
    else if ( nota >= 5,00 && nota <= 6,99 ){
        printf ( " :/ Aprovado por los pelos ");
    }
   
    else if ( nota >= 7,00 && nota <= 8,99 ){
        printf ( " : ) Good job bro ");
    }

    else if ( nota >= 8,50 && nota <= 9,99 ){
        printf ( " : ) Good job bro ");
    }
       
    else ( nota==10 )
        printf ( "Matrícula de honor, eres el orgullo de la familia" );
    }
   
   
       
   
   
    return 0;
}
 
Última edición:

destapeman

FUCK PUSSYS, YES BADASS
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder
Puede ser $nota en los if?
De todas formas por qué no utilizas un case?
 

Valeo08

Capullo perro no mucho
Noderador
Nodero
Noder
El último else tiene una condición pero no tiene un if, luego es un error. Los else no pueden llevar una condición.

Otro fallo que veo es que pasa del 8,99 al 8,5 en lugar del 9,0. También hay que tener en cuenta que se utiliza el modelo de notación
anglosajón por lo que las comas de los decimales se tienen que cambiar por puntos.