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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  estrcuturas+funciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: estrcuturas+funciones  (Leído 818 veces)
fernaEDLP

Desconectado Desconectado

Mensajes: 48


Ver Perfil
estrcuturas+funciones
« en: 3 Julio 2019, 19:05 pm »

hola bochos, espero que la vida los trate bien, me dan una mano con este código?

el problema dice así:
a)haciendo uso de estructuras implemente un tipo de dato que permita modelar un equipo de fútbol, del equipo interesa conocer: nombre, cantidad de partidos ganados, empatados, y perdidos, goles a favor y goles en contra y puntaje.
b)
implemente un código en c que de una función que permita calcular el puntaje de un equipo, el mismo se calcula en función de los partidos ganados(3 puntos), perdidos(0) y empatados(1), nota: se pretende que que la función a implementar reciba un equipo por referencia para setear su puntaje y que no devuelva nada.
c)
Escriba  las lineas de código que permitan gestionar una liga de 40 equipos usando memoria estática debe generar la lista de 40 equipos e inicializarlos por teclado,toda la información para cada equipo se cargara por teclado, a excepción del puntaje que se calculara usando la función implementada.


mi código es el siguiente:
Código
  1. struct equipo
  2. {
  3.    char nombre[20];
  4.    int resultados[3];
  5.    int goles[2];
  6.    int puntaje;
  7. };
  8. void puntaje(struct equipo* );
  9.  
  10. int main()
  11. {
  12.    int j=0;
  13.    struct equipo datos[2];
  14.    struct equipo *punt;
  15.    for(j=0;j<2;j++)
  16.    {
  17.        printf("\ningrese nombre de equipo%d\n",j+1);
  18.        gets(datos[j].nombre);
  19.        fflush(stdin);
  20.        printf("ingrese los partidos ganados \n");
  21.        scanf("%d",&datos[j].resultados[j]);
  22.        fflush(stdin);
  23.        printf("ingrese los partidos empatados \n");
  24.        scanf("%d",&datos[j].resultados[j+1]);
  25.        fflush(stdin);
  26.        printf("ingrese los partidos perdidos\n");
  27.        scanf("%d",&datos[j].resultados[j+2]);
  28.        fflush(stdin);
  29.        printf("ingrese goles a favor\n");
  30.        scanf("%d",&datos[j].goles[j]);
  31.        fflush(stdin);
  32.        printf("ingrese goles en contra\n");
  33.        scanf("%d",&datos[j].goles[j+1]);
  34.        fflush(stdin);
  35.        punt=&datos[j];
  36.        puntaje(punt);
  37.  
  38.    }
  39.  
  40.  
  41.  
  42.    return 0;
  43. }
  44. void puntaje(struct equipo*p )
  45. {
  46.    int i=0,puntos=0, num[3]={3,1,0};
  47.    for(i=0;i<3;i++)
  48.    {
  49.        puntos=puntos+(p->resultados[i])*num[i];
  50.    }
  51.    printf("\nel puntaje es %d",puntos);
  52.    return;
  53. }
 
mi problema esta en la linea de código del inciso 3 b, la cuestión es que cuando quiero calcular el puntaje para cada equipo y llamo a la función,para luego utilizar la asignación punt=&datos[j], me calcula el puntaje para el primer partido, pero luego calcula cualquier cosa. Se supone que datos es un puntero a una variable de tipo struct equipo, luego guardo esa direccion en un puntero (punt), y luego aumento el indice para que recorra paquete de datos ( es decir los que voy inicializando), pero no se porque no funciona, graciass de antemanooo



para facilitar la carga de datos obviamente que no hice el programa con 40 equipos...


« Última modificación: 3 Julio 2019, 23:17 pm por Eternal Idol » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 894



Ver Perfil
Re: estrcuturas+funciones
« Respuesta #1 en: 4 Julio 2019, 15:57 pm »

El problema lo tienes después de la primera iteración con las variables <resultados> y <goles> y eso es porque no puedes usar el índice <j> para controlar esos arrays ya que no coinciden los valores. Los arrays siempre son {0,1,2} y si usas el índice <j>; en la primera iteración estás usando correctamente {0,1,2} pero en la segunda estás usando {1,2,3} por lo que el índice 0 tiene basura y estás accediendo al 3 que está fuera del array.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
fernaEDLP

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: estrcuturas+funciones
« Respuesta #2 en: 5 Julio 2019, 06:22 am »

perfecto graciass!! mañana rindo!, espero llegar a un 4, hoy le rezo a san judas tadeo :xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PHP y funciones tcp/ip « 1 2 »
PHP
nacho2003 11 4,860 Último mensaje 21 Septiembre 2006, 00:07 am
por deya
Funciones en php
PHP
Lambda 2 1,660 Último mensaje 14 Octubre 2006, 17:00 pm
por Thaorius
funciones y FOR
PHP
pepelon 4 1,538 Último mensaje 9 Diciembre 2006, 02:49 am
por pepelon
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
‭lipman 9 21,526 Último mensaje 19 Mayo 2011, 23:39 pm
por Littlehorse
Paso de funciones a otras funciones
Programación C/C++
eaz95 1 917 Último mensaje 18 Julio 2017, 11:59 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines