Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Gonzalo Leonardo en 12 Mayo 2010, 02:28 AM

Título: Examen Final de C en UTN FRRO
Publicado por: Gonzalo Leonardo en 12 Mayo 2010, 02:28 AM
Hola!! Tengo aquí un problemita con los punteros y los prototipos de funciones que me dan. Los prototipos que me dan son estos:

void carga_rubros(struct rubros *);
void pantalla_rubros(struct rubros *);

...los cuales debo declararlos y usarlos tal como estan ahí. Ahora bien....no se como trabajarlos. Lo debía hacer en el programa era cargar los rubros, mostrarlos, y luego que el cliente despues de elegir el rubro, trabaje con los productos de ese rubro, pero esta ultima parte no interesa....me interesa saber como cargarlos y mostrarlos de acuerdo con los prototipos que me dieron. Esto resulto de mi:

#include<stdio.h>

struct produ {
   int codigoProd, stock;
   char nombreProd[30], marcaProd[20];
   float precioProd;
};

struct rubros {
   char rubro[20];
   struct produ info_productos;
};

void carga_rubros(struct rubros *);
void pantalla_rubros(struct rubros *);

main()
{
struct rubros info_rubros[3], *ru;
struct produ info_productos[10], *pro;

carga_rubros(ru);
pantalla_rubros(ru);
getche();
return 0;
}

void carga_rubros(struct rubros *ru)
{
int a;
for(a=0; a<3; a++) {
   printf("Nombre Rubro: ");
   flushall();
   scanf("%s", ru->rubro);
};
return 0;
}

void pantalla_rubros(struct rubros *ru)
{
int b;
for(b=0; b<3; b++) {
   printf("%s\n", ru->rubro);
};
return 0;
}

Esto es lo que me hace...cargo: frio, calor, lalala
Luego me muestra lo siguiente: lalala, lalala, lalala

Soy un novato tremendo. Ayuda por favor. Gracias de antemano
Título: Re: Examen Final de C en UTN FRRO
Publicado por: .:BlackCoder:. en 12 Mayo 2010, 02:45 AM
ru nunca apunta a una estructura... para empezar cambiale eso y despues veo to el code....

Saludos...
Título: Re: Examen Final de C en UTN FRRO
Publicado por: Gonzalo Leonardo en 12 Mayo 2010, 03:12 AM
La verdad es que ni yo se a lo que apunta. Tampoco se como corregir esto o mejor dicho como resolverlo. Tengo un problemita bastante grande con punteros, ya que no los comprendo. Si me pueden dar algun buen manualcito o guia para leer, será bienvenido.

Los punteros muy muy comunes si los se usar, pero mi problema es con los punteros a estructuras, a funciones, etc.
Título: Re: Examen Final de C en UTN FRRO
Publicado por: .:BlackCoder:. en 12 Mayo 2010, 03:51 AM
weno me imagino que na mas tienes que darle la direccion de una estructura algo asi...

Código (cpp) [Seleccionar]
struct X ejemplo;
struct X *p_ejem=&ejemplo;


Y ya  :xD pruebalo a ver... Sobre un tutorial... aca en el foro hay uno, hecho por "do while", usa el buscador del foro...
Título: Re: Examen Final de C en UTN FRRO
Publicado por: Gonzalo Leonardo en 12 Mayo 2010, 04:48 AM
EURECAAAA...

Solucionado amigos...consegui que funcionara. Muchas gracias por todo...esto es solo el comienzo de mi aprendizaje con este gran lenguaje.

Aquí dejo la solucion a mi problema...asiq, estudiaré mas teoría y luego seguiré echando codigos para terminar el programa completo.

#include<stdio.h>

struct produ {
   int codigoProd, stock;
   char nombreProd[30], marcaProd[20];
   float precioProd;
};

struct rubros {
   char rubro[20];
   struct produ info_productos;
};

void carga_rubros(struct rubros *);
void pantalla_rubros(struct rubros *);

main()
{
struct rubros info_rubros[3], *ru;
struct produ info_productos[10], *pro;

carga_rubros(ru);
pantalla_rubros(ru);
getche();
return 0;
}

void carga_rubros(struct rubros *ru)
{
int a;
for(a=0; a<3; a++) {
   printf("Nombre Rubro: ");
   flushall();
   scanf("%s", &ru->rubro);
   ru++;
};
}

void pantalla_rubros(struct rubros *ru)
{
int b;
for(b=0; b<3; b++) {
   printf("%s\n", ru->rubro);
   ru++;
};
}
Título: Re: Examen Final de C en UTN FRRO
Publicado por: .:BlackCoder:. en 12 Mayo 2010, 05:06 AM
De nuevo no le diste la direccion de una estructura a ru, ni al otro puntero...  :¬¬
Título: Re: Examen Final de C en UTN FRRO
Publicado por: Gonzalo Leonardo en 12 Mayo 2010, 05:38 AM
Si si, lo que vos decis esta perfecto y sería así:

.
.
.
main()
{
struct rubros info_rubros;
struct rubros *ru=&info_rubros;
.
.
.

Así y todo, como yo lo hago también funciona y ahorro código. Tengamos en cuenta que soy novato y me puedo confundir, pero el programa ya está probado y anda, y hace lo que quiero XD.