Chicos muchas gracias a ambos que me ayudaron, me gustaría saber cómo es eso de la mala costumbre del
. El profesor nos dijo que podíamos usar
pero nos dijo que queda a decisión de uno, pero no nos dio una explicación, me gustaría poder saber sobre el tema, lo de la librería conio.h creo entenderlo, es una librería muy pesada y que sólo se usa en ámbitos de estudios, pero a la hora de aplicarlo en lo cotidiano, no se la usa, eso según estuve leyendo en uno de las respuestas que brindó
eferion en uno de los temas. Bueno, volviendo al tema central, ¡Creo que entendí y aunque sea simple, estoy contento con poder haberlo entendido! gracias a ustedes que me hicieron pensar... Lo expliqué de la siguiente manera, si alguien quiere hacer alguna corrección puede hacerme saber, ya que yo soy un novato en la programación, o quizás le sirva a otra persona a modo de entender lo que yo no podía comprender, nunca se sabe. Les dejo el código comentado:
Código C++:
Ver original// Se definen las constantes
#define MAX_NOTA 5
#define NOTA_BAJA 1
#define NOTA_ALTA 10
using namespace std;
int main()
{
//Array de las notas
int notas[MAX_NOTA];
int sumNotas = 0;
int notaMin = NOTA_ALTA;
int notaMax = NOTA_BAJA;
//Resolución del problema
for (int i = 0; i < MAX_NOTA; i++) /* En la función for (para este caso) se establece un valor fijo sólo la primera vez que se
ejecuta el programa, si el usuario ingresa 5 como cin en "nota : 5" notaMin = 5 y
notaMax = 5 ahora si en Nota 1 (i++): 8 (El usuario ingresa la nota 8)
notamin= 5 debido a que 8 (notas[i]) no es < a 5 (notaMin del primero bucle del for "nota 0")
ahora bien, 8(notas[i] - ingresado por el usuario -)
es mayor a 5 (notaMax del primer bucle del for "nota 0") por ende la nueva notaMax=8 */
{
cout << endl << "Nota " << i << ":";
cin >> notas[i]; /*1er caso; el usuario ingresa el número "5"
2do caso; el usuario ingresa el número 8*/
sumNotas += notas[i]; /*1er caso; Se guarda la suma entre sumNotas y la nota ingresada (5) en sumNotas, ej: si ingreso 5
entonces sumNotas = 5
2do caso; sumNotas= 5, se suma a la nota ingresada notas[i] (8), 5 + 8 = 13*/
if (notas[i] < notaMin) /*1er caso; se evalua el 5 ingresado por el usuario, ¿Es menor a notaMin(10)? sí, entonces..
al ser 5 < que 10, notaMin entonces toma un nuevo valor que es 5, notaMin = 5
2do caso: se evalua si el 8 ingresado es menor a 5 (notaMin = 5 del recorrido del for ANTERIOR
8 NO es < a 5 por ende, se ignora el if ya que no cumple la condición y notaMin sigue siendo = 5 )*/
notaMin = notas[i];
if (notas[i] > notaMax) /*1er caso; (Se aplica lo mismo que el if anterior con diferente operador), ¿Es mayor 5 a
2do caso; Es 8 mayor a 5 (del recorrido ANTERIOR del FOR), sí, es mayor, por ende notaMax
toma un nuevo valor y es 8 ya que notaMax=notas[i] */
notaMax = notas[i];
// El programa seguirá así hasta encontrar (O NO) un número menor o mayor según el IF
}
cout << endl << "La nota promedio es: " << sumNotas / MAX_NOTA << endl; /* Se divide las suma total de sumNotas += notas[i]
en el máximo de notas que se pueden ingresar*/
cout << "La nota más alta es: " << notaMax << endl; /*Se muestra la notaMax obtenida del segundo IF*/
cout << "La nota más baja es: " << notaMin << endl; /*Se muestra la notaMin obtenida del primer IF*/
return 0;
}
Muchas gracias. Y gracias
vizen por tomarte el tiempo de cambiar el código.