Autor Tema: C++ ejercicio Determinar dni de alumnos de mayor nota promedio usando dos arrays  (Leído 863 veces)

rtxm480

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
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.
« Última modificación: 30 de Marzo 2021, 19:50 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 725
    • Ver Perfil
Re: Determinar el dni de los alumnos de mayor nota promedio
« Respuesta #1 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.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

rtxm480

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re: Determinar el dni de los alumnos de mayor nota promedio
« Respuesta #2 en: 26 de Noviembre 2020, 02:31 »
Muchas gracias, con eso que me dijiste aclaraste mis dudas, cuando lo complete lo subo

rtxm480

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re: Determinar el dni de los alumnos de mayor nota promedio
« Respuesta #3 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;
}
« Última modificación: 30 de Marzo 2021, 19:49 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 725
    • Ver Perfil
Re: Determinar el dni de los alumnos de mayor nota promedio
« Respuesta #4 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;
}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".