elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  AYUDA! fallo en la impresion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA! fallo en la impresion  (Leído 2,093 veces)
NicoSanhueza

Desconectado Desconectado

Mensajes: 9


Ver Perfil
AYUDA! fallo en la impresion
« en: 20 Junio 2018, 22:59 pm »

Buenas tardes a todos , espero que estén muy bien.

Enunciado del problema: Hacer una estructura llamada alumno, en la cual se tendrán los siguientes miembros: Nombre, edad, promedio, pedir datos al usuario para 3 alumnos, comprobar cuál de los 3 tiene el mejor promedio y posteriormente imprimir los datos del alumno.

Tengo el problema en la impresión de los datos de la persona con mejor promedio.
¿esta bien utilizado el puntero? de no ser así, ¿ como se utiliza correctamente el puntero a estructura para llevarlo a una función?

lo que quería hacer en la función promedio es llevar todo el arreglo a la función( es un arreglo de estructuras)

Llevo mucho tiempo averiguando cual es el error, si me ayudan seria fantástico.
gracias de antemano

#include <stdio.h>

typedef struct alumnos
{
    char nombre[20];
    int edad;
    int promedio;
}alumno;

void datos();
void promedio();

int main()
{
   alumno arr[3];

   datos(arr[0]);
   datos(arr[1]);
   datos(arr[2]);

   promedio(arr);

  return 0;
}


void datos(alumno x)// se rellenan los datos en cada estructura
{
    printf("\nNombre alumno:");
    scanf("%s",&x.nombre);
    printf("\nEdad:");
    scanf("%d",&x.edad);
    printf("\nPromedio:");
    scanf("%d",&x.promedio);

}

void promedio(alumno* arr)
{
    int i,pos,max=0;

    for(i=0;i<3;i++)// se compara el promedio de cada alumno
    {
        if(max<arr.promedio)
            max=arr.promedio;
            pos=i;// se guarda la posición del alumno con el mejor promedio
    }

      printf("\nEl alumno con la mejor nota es: \n");
   printf("\nNombre: %s",arr[pos].nombre);
   printf("\nEdad: %d",arr[pos].edad);
   printf("\nPromedio: %d\n\n",arr[pos].promedio);

}


« Última modificación: 25 Junio 2018, 02:58 am por NicoSanhueza » En línea

Pieshna

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: AYUDA! fallo en la impresion
« Respuesta #1 en: 21 Junio 2018, 06:50 am »

Hola amigo, te recomendaria que usaras la cabecera iostream en vez de stdio ya que es mucho mas facil pero para gustos colores jejeje

Mira el problema esta aqui
Código
  1. if(max<arr.promedio)
  2. max=arr.promedio;
  3. pos=i;// se guarda la posición del alumno con el mejor promedio
  4.  
Se te olvido abrir llaves des pues del parentesis y ejecutar
Código
  1. if(max<arr.promedio){
  2. max=arr.promedio;
  3. pos=i;// se guarda la posición del alumno con el mejor promedio
  4. }
  5.  
Pero si gustas aqui esta el ejercicio
Código
  1. #include <iostream>//entrada y salida estandar
  2. #include <conio.h>//para el getch(); que es pausar pantalla
  3.  
  4. using namespace std;//evitamos escribir std::cout y std::cin cada vez... Ojo si te marca error aqui puedes eliminar esta linea
  5.  
  6. struct alumnos
  7. {
  8.    char nombre[20];
  9.    int edad;
  10.    int promedio;
  11. }alumnos[100];//creamos 100 estructuras ya que no se sabe cuantas va a ingresar el usuario
  12.  
  13. void promedio();
  14. int cantidad;//la hacemos variante universal para que todos los void puedan usar el dato ingresado
  15.  
  16. int main()
  17. {
  18.    cout<<" Cuantos alumnos desea agregar? ";
  19.    cin>>cantidad;//ingresamos a la variante universal
  20.    for(int i=0; i<cantidad; i++){
  21.     cout<<" Nombre alumno: ";
  22.     cin>>alumnos[i].nombre;
  23.     cout<<" Edad: ";
  24.     cin>>alumnos[i].edad;
  25.     cout<<" Promedio: ";
  26.     cin>>alumnos[i].promedio;
  27. }
  28. promedio();//mandamos a llamar el void
  29. cout<<" Presione cualquier tecla para salir...";
  30. getch();
  31. }
  32.  
  33. void promedio()
  34. {
  35.     int i, pos,max=0;
  36.  
  37.    for(i=0;i<cantidad;i++)
  38.    {
  39.        if(max<alumnos[i].promedio){
  40.         max=alumnos[i].promedio;
  41.            pos=i;// se guarda la posición del alumno con el mejor promedio
  42. }
  43. }
  44.      cout<<"\n El alumno con mejor nota es:\n";
  45.      cout<<" Nombre: "<<alumnos[pos].nombre<<endl;
  46.      cout<<" Edad: "<<alumnos[pos].edad<<endl;
  47.      cout<<" Promedio: "<<alumnos[pos].promedio<<endl;
  48.  
  49. }
  50.  


En línea

NicoSanhueza

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: AYUDA! fallo en la impresion
« Respuesta #2 en: 25 Junio 2018, 02:53 am »

Hola amigo, te recomendaria que usaras la cabecera iostream en vez de stdio ya que es mucho mas facil pero para gustos colores jejeje

Mira el problema esta aqui
Código
  1. if(max<arr.promedio)
  2. max=arr.promedio;
  3. pos=i;// se guarda la posición del alumno con el mejor promedio
  4.  
Se te olvido abrir llaves des pues del parentesis y ejecutar
Código
  1. if(max<arr.promedio){
  2. max=arr.promedio;
  3. pos=i;// se guarda la posición del alumno con el mejor promedio
  4. }
  5.  
Pero si gustas aqui esta el ejercicio
Código
  1. #include <iostream>//entrada y salida estandar
  2. #include <conio.h>//para el getch(); que es pausar pantalla
  3.  
  4. using namespace std;//evitamos escribir std::cout y std::cin cada vez... Ojo si te marca error aqui puedes eliminar esta linea
  5.  
  6. struct alumnos
  7. {
  8.    char nombre[20];
  9.    int edad;
  10.    int promedio;
  11. }alumnos[100];//creamos 100 estructuras ya que no se sabe cuantas va a ingresar el usuario
  12.  
  13. void promedio();
  14. int cantidad;//la hacemos variante universal para que todos los void puedan usar el dato ingresado
  15.  
  16. int main()
  17. {
  18.    cout<<" Cuantos alumnos desea agregar? ";
  19.    cin>>cantidad;//ingresamos a la variante universal
  20.    for(int i=0; i<cantidad; i++){
  21.     cout<<" Nombre alumno: ";
  22.     cin>>alumnos[i].nombre;
  23.     cout<<" Edad: ";
  24.     cin>>alumnos[i].edad;
  25.     cout<<" Promedio: ";
  26.     cin>>alumnos[i].promedio;
  27. }
  28. promedio();//mandamos a llamar el void
  29. cout<<" Presione cualquier tecla para salir...";
  30. getch();
  31. }
  32.  
  33. void promedio()
  34. {
  35.     int i, pos,max=0;
  36.  
  37.    for(i=0;i<cantidad;i++)
  38.    {
  39.        if(max<alumnos[i].promedio){
  40.         max=alumnos[i].promedio;
  41.            pos=i;// se guarda la posición del alumno con el mejor promedio
  42. }
  43. }
  44.      cout<<"\n El alumno con mejor nota es:\n";
  45.      cout<<" Nombre: "<<alumnos[pos].nombre<<endl;
  46.      cout<<" Edad: "<<alumnos[pos].edad<<endl;
  47.      cout<<" Promedio: "<<alumnos[pos].promedio<<endl;
  48.  
  49. }
  50.  


Muchas gracias!  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con impresion de php en txt
PHP
Dannysoft 0 1,337 Último mensaje 14 Julio 2008, 22:35 pm
por Dannysoft
[Ayuda] Ver Cola de Impresion (Spooler)
Programación Visual Basic
agus0 0 1,797 Último mensaje 20 Noviembre 2010, 01:24 am
por agus0
Ayuda con impresion
Hardware
CriPeR 2 3,135 Último mensaje 17 Junio 2011, 04:39 am
por CriPeR
Ayuda con impresion alineada.
.NET (C#, VB.NET, ASP)
luison 1 1,755 Último mensaje 22 Junio 2011, 21:48 pm
por [D4N93R]
Un fallo en la cola de impresión permite hackear cualquier versión de Windows
Noticias
wolfbcn 0 2,176 Último mensaje 13 Julio 2016, 18:44 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines