Sábado 16 de Noviembre de 2024, 05:36
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Primeros pasos con estructuras
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Primeros pasos con estructuras (Leído 1289 veces)
kingsizen
Miembro activo
Mensajes: 41
Primeros pasos con estructuras
«
en:
Martes 21 de Abril de 2009, 06:20 »
0
Hola gente del foro, estoy empezando a utilizar estructuras y estoy teniendo un problema que seguramente debe ser algo sencillo, se ma hace que algun problema de buffer o algo asi.
el programa es el siguiente:
Código: C
# include <stdio.h>
struct
equi
{
char
nombre
;
int
ganados
;
int
perdidos
;
int
empatados
;
int
puntos
;
}
;
main
(
)
{
struct
equi equipos
[
2
]
;
int
i
;
for
(
i
=
0
;
i
<
2
;++
i
)
{
printf
(
"Ingrese nombren"
)
;
scanf
(
"%s"
,&
equipos
[
i
]
.
nombre
)
;
printf
(
"Ingrese Partidos ganados,perdidos y empatadosn"
)
;
scanf
(
"%d %d %d"
,&
equipos
[
i
]
.
ganados
,&
equipos
[
i
]
.
perdidos
,&
equipos
[
i
]
.
empatados
)
;
}
for
(
i
=
0
;
i
<
3
;++
i
)
{
printf
(
"Nombre: %s"
,
equipos
[
i
]
.
nombre
)
;
printf
(
"Ganados: %d Perdidos: %d Empatados: %d"
,
equipos
[
i
]
.
ganados
,
equipos
[
i
]
.
perdidos
,
equipos
[
i
]
.
empatados
)
;
}
}
no me toma los nombres de los equipos, no entiendo porque....
espero sus respuestas. muchas gracias!
pd: alguien me puede explicar como se limpia el buffer y como funciona?
Tweet
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Primeros pasos con estructuras
«
Respuesta #1 en:
Martes 21 de Abril de 2009, 10:12 »
0
Varios errores:
Línea 7:
Cita de: "kingsizen"
char nombre;
debería ser
Código: C
char
*
nombre
;
o mejor:
Código: C
char
nombre
[
MAX_NOMBRE
]
;
así te evitas el tener que reservar memoria (claro que hay definir la constante
MAX_NOMBRE
).
Línea 30:
Cita de: "kingsizen"
for (i=0;i<3;++i)
que debería ser evidentemente
Código: C
for
(
i
=
0
;
i
<
2
;++
i
)
Estaría bien que repasaras un poco tu código antes de venir con las dudas.
Salud
Fr33k K0mpu73r
kingsizen
Miembro activo
Mensajes: 41
Re: Primeros pasos con estructuras
«
Respuesta #2 en:
Martes 21 de Abril de 2009, 18:54 »
0
Aqui tengo otro problema: quiero realizar un ordenamiento , primero lo ordeno por los puntos y luego tambien tengo ke ordenar los nombres... uso strcpy. el programa arranca, pero a la hora de devolverme los nombres me da simbolos
aqui el codigo completo
Código: C
# include <stdio.h>
# include <string.h>
struct
equi
{
char
nombre
[
10
]
;
int
ganados
;
int
perdidos
;
int
empatados
;
int
puntos
;
}
;
void
ordena
(
struct
equi e
[
]
)
{
int
i
,
j
,
aux
;
char
aaux
[
10
]
;
for
(
i
=
0
;
i
<
2
;++
i
)
for
(
j
=
0
;
j
<
2
;++
j
)
if
(
e
[
i
]
.
puntos
>
e
[
j
]
.
puntos
)
{
aux
=
e
[
i
]
.
puntos
;
e
[
i
]
.
puntos
=
e
[
j
]
.
puntos
;
e
[
j
]
.
puntos
=
aux
;
strcpy
(
e
[
i
]
.
nombre
,
aaux
)
;
strcpy
(
e
[
j
]
.
nombre
,
e
[
i
]
.
nombre
)
;
strcpy
(
aaux
,
e
[
j
]
.
nombre
)
;
}
}
main
(
)
{
struct
equi equipos
[
2
]
;
int
i
;
for
(
i
=
0
;
i
<
2
;++
i
)
{
printf
(
"Ingrese nombren"
)
;
scanf
(
"%s"
,&
equipos
[
i
]
.
nombre
)
;
printf
(
"Ingrese Partidos ganados,perdidos y empatadosn"
)
;
scanf
(
"%d %d %d %d"
,&
equipos
[
i
]
.
ganados
,&
equipos
[
i
]
.
perdidos
,&
equipos
[
i
]
.
empatados
,&
equipos
[
i
]
.
puntos
)
;
}
for
(
i
=
0
;
i
<
2
;++
i
)
{
printf
(
"Nombre: %s"
,
equipos
[
i
]
.
nombre
)
;
printf
(
"Ganados: %d Perdidos: %d Empatados: %d "
,
equipos
[
i
]
.
ganados
,
equipos
[
i
]
.
perdidos
,
equipos
[
i
]
.
empatados
)
;
}
//calcula(equipos);
ordena
(
equipos
)
;
for
(
i
=
0
;
i
<
2
;++
i
)
{
printf
(
"Nombre: %sn"
,
equipos
[
i
]
.
nombre
)
;
printf
(
"Puntos: %dn"
,
equipos
[
i
]
.
puntos
)
;
}
}
el ordenamiento de los puntos funciona bien... el problema lo tengo con el ordenamiento de nombres. cual puede ser el problema?
muchas gracias
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Primeros pasos con estructuras
«
Respuesta #3 en:
Martes 21 de Abril de 2009, 22:27 »
0
Creo que te has confundido a la hora de usar
strcpy()
, ya que el primer argumento es el destino, y el segundo el origen, es decir, se copia el segundo argumento al primero.
Dicho esto, esta sentencia tuya (línea 27):
Código: C
strcpy
(
e
[
i
]
.
nombre
,
aaux
)
;
no tiene sentido puesto que
aaux
tiene un valor indefinido, de ahí los símbolos raros que te salen (incluso puede que pitidos y todo
)
Salud
Fr33k K0mpu73r
kingsizen
Miembro activo
Mensajes: 41
Re: Primeros pasos con estructuras
«
Respuesta #4 en:
Miércoles 22 de Abril de 2009, 03:48 »
0
Excelente!. ahi lo probe y funciona!!. estaba usando mal el strcpy().
voy a seguir agregandole cosas al programa, seguramente voy a volver con mas dudas.
muchas gracias. especialmente a
moskito
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Primeros pasos con estructuras