Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2015, 21:50
braedu555
 
Fecha de Ingreso: febrero-2015
Mensajes: 20
Antigüedad: 9 años, 3 meses
Puntos: 0
problema con if..else anidado

El problema que tengo esta en las instrucciones if else anidadas:

Código:
#include <stdio.h>                              /*Este programa lee caracteres representados como calificaciones y al final despliega el numero de calificaciones por letra*/

int main ()
{
	int calificacion;
	int cuentaA = 0;
	int cuentaB = 0;
	int cuentaC = 0;
	int cuentaD = 0;
	int cuentaF = 0;
	
	printf("Introduzca la letra que corresponde a la calificacion\n");
	printf("Introduzca el caracter EOF para finalizar la entrada de datos\n");
	
	while ((calificacion = getchar()) != EOF){
		
		if (calificacion == 'A' || calificacion == 'a'){
		   cuentaA++;
	    }
		else if (calificacion == 'B' || calificacion == 'b'){
		   cuentaB++;}
		else if (calificacion == 'C' || calificacion == 'c'){
		   cuentaC++;}
		else if (calificacion == 'D' || calificacion == 'd'){
		   cuentaD++;}
		else if (calificacion == 'F' || calificacion == 'f'){
		   cuentaF++;}
		else{
		     printf("Introduzco una letra incorrecta\n");
		     printf("Introduzca una nueva calificacion\n");
		 }
		     
	}
	
	printf("Los totales por calificacion son:\n");
	printf("A: %d\n", cuentaA);
	printf("B: %d\n", cuentaB);
	printf("C: %d\n", cuentaC);
	printf("D: %d\n", cuentaD);
	printf("F: %d\n", cuentaF);
	
	return 0; 
	
}
La cosa es que el programa si funciona, pero cada vez que introduzco un caracter siempre se despliega el ultimo else, quisiera saber cual es la razon, pues tengo entendido que una vez una condicion if se toma como verdadera se ignora todo lo demas.
Gracias