Dev - C++ - Cuenta mal

   
Vista:

Cuenta mal

Publicado por Jose Luis (8 intervenciones) el 09/01/2018 11:53:53
Estoy resolviendo este programa:

En una clase de 5 alumnos se han realizado tres exámenes y se requiere determinar el número de:
a) Alumnos que aprobaron todos los exámenes.
b) Alumnos que aprobaron al menos un examen.
c) Alumnos que aprobaron únicamente el último examen.

Tengo este codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<iostream>
#include<conio.h>
 
using namespace std;
 
 
int main (){
	int nota1,nota2,nota3,todos=0,ultimo=0,uno=0;
 
 
	for(int i=1;i<=5;i++){
		cout<<"Introduce nota 1: "; cin>>nota1;
		cout<<"Introduce nota 2: "; cin>>nota2;
		cout<<"Introduce nota 3: "; cin>>nota3;
		cout<<"\n";
 
		if((nota1>=5) && (nota2>=5) && (nota3>=5)){
			todos++;
		}
 
		else if((nota1>=5) || (nota2>=5) || (nota3>=5)){
			uno++;
		}
 
		else if((nota1<5) && (nota2<5) && (nota3>=5)){
			ultimo++;
		}
 
	}
 
	cout<<"\na) Aprobaron todos los examenes: "<<todos;
	cout<<"\nb) Aprobaron almenos un examen: "<<uno;
	cout<<"\nc) Aprobaron unicamente el ultimo examen: "<<ultimo;
 
 
	getch();
	return 0;
}

La opcion B y C no me cuenta bien, no me cuenta la opcion C y me lo masa todo a la variable uno que corresponde a la opcion B. ¿Que puede ser?. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Dionicio

re: Cuenta mal

Publicado por Dionicio (57 intervenciones) el 09/01/2018 14:06:58
El problema reside en que usas else if, y dado que si la primera condición es verdadera las demás no se ejecutan. Si quitas la palabra else de los else if todas las condiciones serán evaluadas. Por lo demás no veo ningún problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

re: Cuenta mal

Publicado por Jose Luis (8 intervenciones) el 09/01/2018 14:51:16
He quitado todos los else if y ahora me da fallo en la opcion B, la variable uno siempre saca 5, el resto cuenta bien. ¿Cual es el problema ahora?. gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dionicio

re: Cuenta mal

Publicado por Dionicio (57 intervenciones) el 09/01/2018 15:04:05
Ten en cuenta que la variable uno siempre incrementará si una de las tres notas de un estudiante es mayor o igual a 5 así que prueba poniendo algún estudiante con todas sus notas inferior a ese valor. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

re: Cuenta mal

Publicado por Jose Luis (8 intervenciones) el 09/01/2018 15:10:45
Con los alumnos menores que nota 5 no los cuenta lo hace bien pero sigue con el error anterior y sigo sin encontrar el por que. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dionicio

re: Cuenta mal

Publicado por Dionicio (57 intervenciones) el 09/01/2018 15:25:36
¿Podrías facilitar una captura de pantalla de los resultados? Sería más fácil ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

re: Cuenta mal

Publicado por Jose Luis (8 intervenciones) el 09/01/2018 15:29:41
Captura

Estoy siguiendo un curso y el tio que ha echo el programa le sale peor que a mi incluso y estoy volviendo loco aqui a la gente. Aqui os envio la captura. gracias de verdad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dionicio

re: Cuenta mal

Publicado por Dionicio (57 intervenciones) el 09/01/2018 15:42:54
Como te dije anterior mente, la opción b se incrementará siempre que un estudiante haya pasado al menos un examen...

Para ejemplificar lo que digo prueba introduciendo los siguientes valores a un estudiante

nota1 = 3
nota2 = 4
nota3 = 2

Este alumno no contaría para la opcion b ya que no ha pasado ningún examen. En la captura veo que todos los estudiantes pasaron al menos un examen y por lo tanto como analizas 5 el resultado dio 5. Espero que quede claro lo que puse anteriormente. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

re: Cuenta mal

Publicado por Jose Luis (8 intervenciones) el 09/01/2018 15:44:47
Entonces que puedo hacer para que funcione bien. gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dionicio

re: Cuenta mal

Publicado por Dionicio (57 intervenciones) el 09/01/2018 19:14:48
Lee con atención lo que te dije anteriormente, todo funciona bien... Y te explico porque te da siempre 5. Detente un poco a pensar en lo que escribí anteriormente. Si todavía no lo has entendido creo que no podré seguir explicándote.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

re: Cuenta mal

Publicado por Jose Luis (8 intervenciones) el 09/01/2018 20:03:39
Estaba bloqueado antes, ahora entendi, tanto si aprueban todos los examenes como si es el ultimo al aprobar al menos uno la variable uno se incrementa, por eso sale 5 por que introduje 5 alumnos en el que almenos se aprobo un examen. Creo k ya lo entendi. Gracias. Hay dias en los que te bloqueas mentalmente y no ves lo obvio. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar