Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: rtxm480 en 25 de Noviembre 2020, 17:26

Título: C++ ejercicio Determinar dni de alumnos de mayor nota promedio usando dos arrays
Publicado por: rtxm480 en 25 de Noviembre 2020, 17:26
Hola, no entiendo muy bien este ejercicio, si alguien pudiera realizarlo por mí, se lo agradeceria mucho.

La consigna es: se ingresan dni y la nota promedio de 40 alumnos. determinar el dni de los alumnos de mayor nota promedio.

La codificacion es en c++

Gracias.
Título: Re: Determinar el dni de los alumnos de mayor nota promedio
Publicado por: Kabuto en 26 de Noviembre 2020, 02:17
Puedes hacerlo usando dos arrays, en uno guardas los dni, en el otro la nota promedio.
Así vas pidiendo las 40 notas con un bucle for, que vaya de 0 a 39, que son las posiciones válidas de los arrays, y en cada uno vas guardando el dato correspondiente.

Para facilitar la tarea, además de pedir y guardar esos datos, puedes guardar en otra variable la nota promedio mayor de las que se van introduciendo.
La inicias con valor 0, y cada nota promedio que te den, preguntas con un IF si esta nota es MAYOR que la que tengas guardada en esa variables.
Si no es mayor, no haces nada.
Y si es mayor, entonces a esa variable le asignas la nota que te acaban de dar.

De este modo, cuando hayas recibido las 40 notas, ya sabrás cuál es la nota mayor.

Solo quedaría recorrer el array de notas y por cada posición que encuentres que coincide con esa nota mayor, muestras en pantalla el dni que se encuentre en la misma posición en el otro array.

Inténtalo, no importa si te sale mal o te atascas (es como mejor se aprende), haz lo que puedas y lo muestras por aquí.
Y entonces te ayudamos a corregirlo, completarlo y lo que haga falta.

Pero haz un intento, si otros lo hacen por ti, no aprenderás.
Título: Re: Determinar el dni de los alumnos de mayor nota promedio
Publicado por: rtxm480 en 26 de Noviembre 2020, 02:31
Muchas gracias, con eso que me dijiste aclaraste mis dudas, cuando lo complete lo subo
Título: Re: Determinar el dni de los alumnos de mayor nota promedio
Publicado por: rtxm480 en 26 de Noviembre 2020, 06:33
Bueno por ahora hice esto, esta incompleto porque me quede trabado en esa parte y ya no se como meter lo demas:

Código: [Seleccionar]
#include<stdio.h>
int main()
{
 int dni[40];
 int npm=0;
 
 {
  int nota[40];
  for(nota=0;nota<39;i++)
 }
{
if(nota>nota)
  scanf("%d", &nota);
}
{
 else
 
}
 

return 0;
}
Título: Re: Determinar el dni de los alumnos de mayor nota promedio
Publicado por: Kabuto en 26 de Noviembre 2020, 12:14
Hola.

Dijiste que la codificación es en C++, pero lo que has puesto es código C.

Esta podría ser una solución escrita en C++, comprueba que entiendes cada línea del código y pregunta cualquier duda que tengas.
Un saludo.

Código: [Seleccionar]
#include<iostream>

using namespace std;

int main() {

string dni[40];
float notas[40];
float notaMayor = 0;

for (int i = 0; i < 40; i++) {
cout << "\nIngrese DNI: ";
cin >> dni[i];
cout << "Ingrese nota promedio: ";
cin >> notas[i];

//Comprobamos si la nota ingresada es, de momento, la mayor de todas
if (notas[i] > notaMayor)
notaMayor = notas[i];
}

/*
* Ya tenemos 40 DNI y 40 notas.
* Y también sabemos cuál es la nota mayor.
* Ahora recorremos el array de notas y aquellas que coincidan
* con la nota mayor, mostraremos su DNI
*/
cout << "\nLa mayor nota promedio es: " << notaMayor;
cout << "\nAlumnos que tienen esta nota:\n";

for (int i = 0; i < 40; i++)
if (notas[i] == notaMayor)
cout << "- " << dni[i] << endl;

system("pause");


return 0;
}