Autor Tema: Estructuras y Vectores C (lenguajeC) diferencia entre planteamiento problemas  (Leído 2412 veces)

Gabriel Forzza

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Hola a todos , quisiera saber si me podrían ayudar a solucionar este problema o darme una mano, tengo este trabajo para la Universidad y estuve probando pero no lo logro comprender, este es el problema:

1) Ingresar los datos de los alumnos de un establecimiento consistentes en NOMBRE(string 30 caracteres),SEXO(char) y NOTAS de 10 materias codificadas de 0 a 9 (int).El ingreso terminara cuando se ingrese el nombre FIN.

2) Indicar cuantos alumnos hay en el establecimiento cuyo promedio sea mayor o igual que 4 y menor que 7.

Yo lo armé de esta manera, pero la profesora me dijo que estaba mal, por que las notas las tenia que hacer con un vector, para no poner nota1;nota2;nota3, etc, lo intente pero no doy con el caso asi hice el programa sin el vector y con el promedio sin >=4 y <7.Espero que me puedan dar una mano.Gracias.




Código: [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
#include<ncurses.h>
#include<string.h>
 
struct promedio{
int nota1;
int nota2;
int nota3;
int nota4;
int nota5;
int nota6;
int nota7;
int nota8;
int nota9;
int nota10;
};
 
struct alumno{
char nombre[20];
char sexo[20];
int edad;
struct promedio prom;
}alumnos[100];
 
int main(){
int n,i,pmay;
int promedio[100], mayor = 0;
printf("Digite el total de alumnos: ");
scanf("%i",&n);
 
for(i=0;i<n;i++){
 
printf("%i. Digite su nombre: ",i+1);
scanf("%s",alumnos[i].nombre);
printf("%i. Digite su sexo: ",i+1);
scanf("%s",alumnos[i].sexo);
printf("%i. Digite sus notas: ",i+1);
scanf("%i %i %i %i %i %i %i %i %i %i",&alumnos[i].prom.nota1,
&alumnos[i].prom.nota2,&alumnos[i].prom.nota3,&alumnos[i].prom.nota4,
  &alumnos[i].prom.nota5,&alumnos[i].prom.nota6,&alumnos[i].prom.nota7,&alumnos[i].prom.nota8,
  &alumnos[i].prom.nota9,&alumnos[i].prom.nota10);
printf("\n");
 
promedio[i] = (alumnos[i].prom.nota1+alumnos[i].prom.nota2+alumnos[i].prom.nota3+alumnos[i].prom.nota4+alumnos[i].prom.nota5+
alumnos[i].prom.nota6+alumnos[i].prom.nota7+alumnos[i].prom.nota8+alumnos[i].prom.nota9+alumnos[i].prom.nota10)/3;
 
if(promedio[i] > mayor){
mayor = promedio[i];
pmay = i;
}
}
 
printf("\n- El Alumno con Mayor Promedio-\n");
printf("\nNombre: %s",alumnos[pmay].nombre);
printf("\nSexo: %s",alumnos[pmay].sexo);
printf("\nPromedio: %i\n",promedio[pmay]);
 
 
getch();
return 0;
}

« Última modificación: 31 de Octubre 2016, 21:25 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas Gabriel, bienvenido y recomendarte que leas este hilo si no lo has leído: https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

En este curso tienes explicado el concepto y uso de vectores (llamados arrays o arreglos) en C, y también hay ejercicios resueltos similares a los que comentas: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210

Salu2

 

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".