Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda ejercicio de registros

Estas en el tema de Duda ejercicio de registros en el foro de C/C++ en Foros del Web. Holaaa a todos tengo varias dudas de como hacer este ejercicio lo he empezado pero no se como acabarlo,es de registros sin utilizar punteros os ...
  #1 (permalink)  
Antiguo 05/08/2010, 13:32
Avatar de Gispanish  
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
Duda ejercicio de registros

Holaaa a todos tengo varias dudas de como hacer este ejercicio
lo he empezado pero no se como acabarlo,es de registros sin utilizar punteros

os lo dejo y espero que alguien me pueda ayudar

El director de un colegio desea realizar un programa que procese los registros correspondientes
a los diferentes alumnos de un curso a fin de obtener los siguientes datos: nota más alta y
número de identificación del alumno correspondiente, nota media del curso, nota media del
grupo en el curso. Si existen varios alumnos con la nota más alta, deberemos visualizar todos
ellos. Deberéis inventar los campos mínimos necesarios para crear el archivo de alumnos y
obtener los datos pedidos

-declarar struct alumno
-definir clse de alumnos
-pedir nombre,apellidos,id-alumno,notateoria,notapractica
-calcular nota media de cada alunmo y media de la clase
-calcular nota mas alta de la clase
-mostrar por pantalla : media de cada alumno,meida de clase,id-alumno con la nota mas alta

y esto es lo que he hecho


#include <stdio.h>



struct alumno
{
char idalumno[20];
char nombre[50];
char apellido[20];
float notateoria;
float notapractica;
float notamedia;;

};


void main(void)
{

struct alumno clase[20];
int i=0,j=0;


printf("\n Dame el nombre del alumno %d: ", i+1);
gets(clase[i].nombre);

printf("\n Dame el apellido del alumno %d: ", i+1);
gets(clase[i].apellido);

printf("\n Dame el dni del alumno %d: ", i+1);
gets(clase[i].idalumno);




hasta ahi tengo y esta mal y no se seguir,es en lenguaje C por cierto
puede alguien ayudarme=?????????

Última edición por Gispanish; 05/08/2010 a las 13:43
  #2 (permalink)  
Antiguo 05/08/2010, 21:59
Avatar de gvite666  
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años
Puntos: 4
Respuesta: Duda ejercicio de registros

bueno pues para cargar los datos puedes poner tus lecturas dentro de un for
Código C:
Ver original
  1. for(i=0;i<numAlumnos;i++)
  2. {
  3.       printf("\n Dame el nombre del alumno %d: ", i);
  4.       gets(clase[i].nombre);
  5. }
luego que cargaste tus datos puedes hacer otro for para ir comparando los datos
Código C:
Ver original
  1. //bueno la idea es esta
  2. int mayor[numAlumnos];//este arreglo es por si existen varios alumnos con las notas mayores
  3. a=0;esta para ver cuantos alumnos tienen la nota mayor
  4. for(i=0;i<numAlumnos-1;i++)/*por que numAlumnos-1?, porque vamos a comparar dos tipos de diferente posicion asi que tienes que hacegurarte de que el array no se salga del rango asignado*/
  5. {
  6.          if(clase[i].notateoria>clase[i+1].notateoria)/*aqui en la primera vuelta comparas el primero con el segundo */
  7.         {        
  8.              mayor[a]=i;/*si el primero es el mayor entonces guardamos su posicion en el arreglo*/
  9.              a++;
  10.         }
  11.          else
  12.          {
  13.              if(clase[i].notateoria==clase[i+1].notateoria)//si los dos son iguales
  14.              {
  15.                     mayor[a]=i;//guardamos las posiciones de los dos
  16.                     a++;
  17.                     mayor[a]=i+1;
  18.                     a++;
  19.              }
  20.              else//sino es porque el segundo es mayor
  21.              {
  22.                      mayor[a]=i+1;//guardamos su posicion
  23.                      a++;
  24.              }
  25.          }
  26. }
  27. for(i=0;i<a;i++)//mostramos solo los alumnos que tienen la misma calificacion alta
  28. {
  29. /*para esto guardamos las posiciones de los alumnos que tienen la misma calificacion alta.*/
  30.          printf("nota teoria mayor %d",clase[mayor[i]].notateoria);
  31. }

bueno como te dije esa es la idea o al menos es como yo lo haria, espero que la puedas implemantar.
Saludos.

Etiquetas: registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:02.