Título: Error de estructuras en C Publicado por: ERIK546 en 18 Junio 2012, 02:15 am Hola solicito la ayuda de los expertos esta vez para que me ayuden a encontrar el error que se encuentra en éste programa que utiliza una estructura para guardar diferentes datos, en una estructura llamada "alumno". Les solicito que le den un vistazo al programa y se den cuenta que al parecer no posee errores de sintaxis y presiento que es más un error lógico o algo por el estilo. La idea principal del programa es que en una estructura con el nombre "alumno" pueda guardar en las variables de dicha estructura los datos de nombre, calificación y su número de lista de "n" alumnos guardando en dichas variables de la estructura los "n" datos mediante un ciclo y un arreglo para poder mostrarlos en pantalla con otro ciclo. Les dejo el programa para que puedan decirme donde se encuentra el error, ya que el programa es compilado y ejecutado, sin embargo muestra un error en el ejecutable. Gracias a todos de antemano.
Código: #include <stdio.h> Título: Re: Error de estructuras en C Publicado por: STANHMAL en 18 Junio 2012, 02:38 am Hola que tal, el problema esta en la estructura, ya que tienes nombre para que solo guarde un carácter.
error : Código
solucion : Código
y el otro problema es que cuando lees la cadena se la mandas con el ampersand &,a para las cadenas no es necesario. error : Código
solución : Código
$4!u2 Título: Re: Error de estructuras en C Publicado por: The Swash en 18 Junio 2012, 02:40 am Citar Hola, Por encima y sin poder compilar (no estoy en mi PC) puedo decirte que el problema seguramente se encuentre en el campo nombre en la estructura alumno, en realidad debería ser un arreglo de caracteres. Código o bien de manera dinámica reservando memoria: Código
Y creo que en el scanf deberías pasar sin el "&", pero no tengo compilador para confirmarlo. Un saludo, Iván Portilla. Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. STANHMAL me la ganaste! Además de que me certificaste estar en lo correcto. Título: Re: Error de estructuras en C Publicado por: ERIK546 en 18 Junio 2012, 04:30 am Hola que tal, el problema esta en la estructura, ya que tienes nombre para que solo guarde un carácter. error : Código
solucion : Código
y el otro problema es que cuando lees la cadena se la mandas con el ampersand &,a para las cadenas no es necesario. error : Código
solución : Código
$4!u2 Muchas gracias por tu respuesta STANHMAL, he corregido el error y ahora arroja resultados pero tengo una nueva problemática con el programa: Te dejo el código modificado para que compruebes que he cambiado lo que señalas: Código: #include <stdio.h> Título: Re: Error de estructuras en C Publicado por: durasno en 18 Junio 2012, 04:37 am Hola!
Citar El problema ahora reside que al ejecutarse el programa lo que imprime de la variable "ALUMNO[l].calificacion" y la variable "ALUMNO[l].lista" es al parecer la dirección de memoria de dicha variable y no el valor que mandé guardar en el ciclo anterior con el "scanf" mira como declaras tus variables haber si te das cuenta: Citar int calificacion[100]; int lista[100]; Saludos Título: Re: Error de estructuras en C Publicado por: ERIK546 en 18 Junio 2012, 04:46 am Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. Hola gracias por responder, sobre lo que dijiste de usar una variable tipo apuntador en la estructura ¿Cómo debería darle dimensión? ¿Sería darle dimensión con "malloc" a la variable "nombre" pero ya en el "main"? Me gustaría saber como lo harías, gracias por todo.STANHMAL me la ganaste! Además de que me certificaste estar en lo correcto. Título: Re: Error de estructuras en C Publicado por: ERIK546 en 18 Junio 2012, 04:48 am Hola gracias por responder, sobre lo que dijiste de usar una variable tipo apuntador en la estructura ¿Cómo debería darle dimensión? ¿Sería darle dimensión con "malloc" a la variable "nombre" pero ya en el "main"? Me gustaría saber como lo harías, gracias por todo. Gracias he encontrado el error, de esta forma me ha corrido sin problemas:Código: struct alumno{ Título: Re: Error de estructuras en C Publicado por: ERIK546 en 18 Junio 2012, 06:17 am Hola a todos gracias por su ayuda, se ha logrado ejecutar el programa a la perfección. Sin embargo el programa que ocupo esta un tanto lejos de estar terminado, ya que aparte de esos datos que se han puesto; ocupo ingresar la fecha de nacimiento de estos alumnos. Para ello he decidido poner una nueva variable en la estructura llamada "fecha"; y a su vez una nueva variable de la estructura llamada "FECHA" como un arreglo de 3 dimensiones se podría decir. Para que al ingresar los datos que corresponden a la fecha los guarde en dicho arreglo en la variable de la estructura de la siguiente manera.
Código: #include <stdio.h> Título: Re: Error de estructuras en C Publicado por: STANHMAL en 18 Junio 2012, 15:47 pm Holas, tu error esta acá :
Código
utilizas la struct de alumno la cual solo tiene 1 int destinado para la fecha y necesitas guardar 3, te recomiendo que hagas otra estructura especial para la fecha, algo así: Código
con eso podes eliminar esta parte del código : Código
y podes juntar la parte en la que se lee la fecha en el for donde pides los datos de alumno. $4!u2 Título: Re: Error de estructuras en C Publicado por: ERIK546 en 20 Junio 2012, 06:26 am Hola a todos, gracias por su ayuda en la realización de éste programa que tiene como objetivo pedir los datos de "n" personas; entre esos datos su fecha de nacimiento y ordenar los datos de acuerdo a su fecha de nacimiento. Les dejo ahora el código terminado para que sea de apoyo a la comunidad;
Código: #include <stdio.h> Título: Re: Error de estructuras en C Publicado por: durasno en 20 Junio 2012, 09:45 am Hola! las estructuras, a diferencia de los arreglos, se pueden asignar unas a otras. Esto:
Código equivale a: Código
Saludos PD: el ordenamiente lo hace bien??? sino busca el metodo de la burbuja, que es uno de los mas faciles de entender |