Gente ocupo ayuda para sacar la nota Mayor y nota Menor, este es el código:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i, cantidad, cant100, aprobado, reprobado, ampliacion;
float nota, apro, repro, ampli, notamenor, notamayor;
cout << "Ingrese la Cantidad de Estudiantes a Evaluar \n";
cin >> cantidad;
for (i = 1; i <= cantidad; i++)
{
cout << "Ingrese la Nota Final del Estudiante " << i << endl;
cin >> nota;
if (nota >= 0 && nota <= 100)
{
if (nota == 100)
{
cant100++;
aprobado++;
}
else if (nota >= 70 && nota <= 99)
{
aprobado++;
}
else if (nota >= 60 && nota <= 69)
{
ampliacion++;
}
else
{
reprobado++;
}
}
else
{
cout << "La Nota (" << nota << ")es Invalida, Intentelo de Nuevo \n";
i--;
system("pause");
system("cls");
}
}
apro = (100 / cantidad) * aprobado;
repro = (100 / cantidad) * reprobado;
ampli = (100 / cantidad) * ampliacion;
cout << "Cantidad de Estudiantes: " << cantidad << endl;
cout << endl;
cout << "Estudiantes con Nota de 100: " << cant100 << endl;
cout << "Porcentaje de Estudiantes Aprobados: " << apro << "%" << endl;
cout << "Porcentaje de Estudiantes para Apliacion: " << ampli << "%" << endl;
cout << "Porcentaje de Estudiantes Reprobados: " << repro << "%" << endl;
system("pause");
return 0;
}
Empieza definiendo notamenor=100 y notamayor=0. En el for, por cada nota válida, si la nota > notamayor, actualizas notamayor = nota; y si la nota < notamenor, actualizas notamenor = nota.
No sera al reves?, notamayor=100 y notamenor=0?
No.
Supongamos que mayor vale 100.
Consigues la nota de un alumno, supongamos 50.
Si comparas si nota > mayor (50 > 100) siempre saldrá como más grande mayor.
En cambio si haces, en un principio, que mayor vale 0, en la primera comparación harás nota > mayor (50 > 0), cosa que será verdadera y podrás hacer mayor = nota.