Debe estar conectado para participar
Buscar en los foros:


 






Uso de Comodín:
*    coincide cualquier número de caracteres
%    coincide exactamente un caracter

Ayuda con programa en C , me tira un error que no se que es

No hay Etiquetas
Entrada
Extreme Level

carlitox091

entradas: 1263

18:18 25/08/2008

1

Hola chicos como ya les dije anteriormente, soy un novato en esto, estoy aprendiendo y he hecho este programa el cual me tira el siguiente error:

"Undefined symbol 'compra' " en la linea 155 (yo les marco la linea igual en el texto a continuacion)

/////////////////////////MONTEFORTE.CPP/////////////////////////

#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>

struct datos
{ char producto[20];
int stock;
int precio;
int numero;
};

void ingreso (struct datos base[20]);
void ordenar (struct datos ord[20]);
void eleccion (struct datos compra[20]);

//COMIENZO DEL MAIN//
void main (void)

{
clrscr();

struct datos base[20];

ingreso(base);
ordenar(base);
eleccion(base);
}

//COMIENZO FUNCION INGRESO//
void ingreso (struct datos base[20])
{
int cont;
for(cont=0;cont<=4;cont++)
{
printf("nnn ingrese el nombre del %d producto: ",cont);
scanf("%s",&base[cont].producto);
printf("n ingrese stock:&quotwink;
scanf("%d",&base[cont].stock);
printf("n ingrese precio: &quotwink;
scanf("%d",&base[cont].precio);

printf("n producto %s ….. stock %d ….. precio %d ", base[cont].producto, base[cont].stock,base[cont].precio);

}

printf("nSe finalizo el ingreso de productos&quotwink;
getch();
}

////////COMIENZO FUNCION ORDENA///////////
void ordenar (struct datos ord[5])
{
int cont,cont2,cont3,conf,aux;
char aux2[5];
printf("n como desea ordenar presione 1 para ordenar por stock y 2 x nombre &quotwink;
scanf("%d",&conf);
printf("Usted selecciono %d, si se confundio jodase!! nA continuacion se comenzara el ordenamiento ",conf);
getch();

if(conf==1)
{

for(cont=0; cont<=4; cont++)
{
for(cont2=cont+1; cont2<=5; cont2++)
{
if(ord[cont].stock<ord[cont2].stock)
{
aux=ord [cont].stock;
ord[cont].stock=ord[cont2].stock;
ord[cont2].stock=aux;

strcpy(aux2, ord[cont].producto);
strcpy(ord[cont].producto, ord[cont2].producto);
strcpy(ord[cont2].producto, aux2);

aux=ord [cont].precio;
ord[cont].precio=ord[cont2].precio;
ord[cont2].precio=aux;
}
}
}
for(cont3=0;cont3<=5;cont3++)
{
printf("n producto %s ….. stock %d ….. precio %d ", ord[cont].producto, ord[cont].stock, ord[cont].precio);
getch();
}
printf("n termino el ordenamiento x stock&quotwink;
getch();
}

else
{
for(cont=0; cont<=4; cont++)
{
for(cont2=cont+1; cont2<=5; cont2++)
{

aux= strcmp(ord[cont].producto,ord[cont2].producto); ///COMPARA NOMBRES///
if(aux>0)
{

strcpy(aux2, ord[cont].producto);
strcpy(ord[cont].producto, ord[cont2].producto);
strcpy(ord[cont2].producto, aux2);

aux=ord [cont].stock;
ord[cont].stock=ord[cont2].stock;
ord[cont2].stock=aux;

aux=ord [cont].precio;
ord[cont].precio=ord[cont2].precio;
ord[cont2].precio=aux;
}

}
}
for(cont=0;cont<=5;cont++)
{

printf("n producto %s ….. stock %d ….. precio %d ", ord[cont].producto, ord[cont].stock, ord[cont].precio);
getch();
}

}

////COMIENZO FUNCION ELECCION////

void eleccion (struct datos compra[20]);
{
int prod,cont,cont2,vec[20];
struct datos desi[20];
printf("n ¨Cuantos productos desea ingresar al carrito de compra?&quotwink;
scanf("%d",&prod);
for(cont=0; cont<=prod;cont++)
{
printf("n Ingrese el numero de producto a elegir&quotwink;
scanf("%d",&vec[cont]);
}
for(cont=0;cont<=prod;cont++)
{for(cont2=0;cont2<=20;cont2++)
{
if(vec[cont]=compra[cont2].numero) AQUI TIRA ERROR
{
desi[cont]=compra[cont2];
}
}
}

}

}

Un saludo espero me ayuden ya que el tp es para mañana :P

gracias de antemano

Powered by:
Intel Core 2 Duo E4400 @ 2.80GHZ / Gigabyte P35-DS3L / WD 250GB 16MB Buffer / 2X1GB SuperTalent 667 CL5 @ 700 4 4 4 12 / VTB 8024 FULL + VTB COL-60-B Dual Rail 600w / XFX 8800GS Alpha Dog Edition

Extreme Level

FKuyt

entradas: 2613

18:51 25/08/2008

2

OFF: carlitox, como andas ?? hace cuanto que no te conectas al msn papa …
che sacatelo a bergessio de avatar y ponetelo al pecho caliente de gerrard.

un abrazo

Extreme Level

carlitox091

entradas: 1263

18:58 25/08/2008

3
Cita Iniciado por FKuyt
Ver Mensaje
OFF: carlitox, como andas ?? hace cuanto que no te conectas al msn papa …
che sacatelo a bergessio de avatar y ponetelo al pecho caliente de gerrard.

un abrazo

Jajja como va che ! todo bien … che te paso mi nuevo msn por pm , jaja si la tengo que cambiar x gerrard o por una del lobo ledesma . Toy muy ocupado con el cole , no tengo tiempo para nada

Powered by:
Intel Core 2 Duo E4400 @ 2.80GHZ / Gigabyte P35-DS3L / WD 250GB 16MB Buffer / 2X1GB SuperTalent 667 CL5 @ 700 4 4 4 12 / VTB 8024 FULL + VTB COL-60-B Dual Rail 600w / XFX 8800GS Alpha Dog Edition

Extreme Level

Adris

QueTi

entradas: 1311

19:55 25/08/2008

4

En la linea marcada, ponelo asi y contame q paso:

if(vec[cont]==compra[cont2].numero)

Ada Lovelace (1815-1852) : "Esta máquina puede hacer cualquier cosa que sepamos cómo ordenarle que la ejecute…"

Extreme Level

teto89

Villa Crespo

entradas: 2290

19:56 25/08/2008

5

hola, me parece que te faltan puntos y comas ";".
donde declaraste la variable cont2 compra?

 
- Intel C2D E6600 @ 2.4ghz- Asus P5W dh Deluxe- OCZ
Reaper 2x1gb 800mhz + Supertalent 2x1Gb 667mhz – WD 250gb(x2) + 500gb wd – HIS
4850 TurboX Iceq4 – Pioneer 212D sata – Powercooler 500SS -Thermaltake Kandalf
Black-
- Intel PD 950 @ 3.4ghz- Asus P5nd2 Sli- Elixir 1gb
+ 1gb supertalent 667- Wd 160gb + Wd 80gb – MSi 7300GTx2 (SLI) – Pioneer 111D-
- Notebook
Toshiba Satellite A205-7458- C2D T5250- 4gb 667hz- 320gb Hd- 15.4"
widescreen- Dvd rw DL 8x
- Sony Ericsson C905 8mpx

 

Midle End Level

maynat

entradas: 218

20:08 25/08/2008

6

Fijate que tenes un punto y coma en la definicion de la funcion
void eleccion (struct datos compra[20]);

Despues trata de identar un poco el codigo, al principio es molesto hacerlo pero despues te acostumbras y es mas facil para entender por si saltan errores

Extreme Level

Adris

QueTi

entradas: 1311

20:13 25/08/2008

7
Cita Iniciado por maynat
Ver Mensaje
Fijate que tenes un punto y coma en la definicion de la funcion
void eleccion (struct datos compra[20]);

Ajam es verdad, los precios del Copy&Paste, jejeje.

Ada Lovelace (1815-1852) : "Esta máquina puede hacer cualquier cosa que sepamos cómo ordenarle que la ejecute…"

Extreme Level

Lukas17

Córdoba

entradas: 1028

20:21 25/08/2008

8
Cita Iniciado por Adris
Ver Mensaje
En la linea marcada, ponelo asi y contame q paso:

if(vec[cont]==compra[cont2].numero)

Tiene razon Adris, ahi en el IF estas comparando, y la comparacion en C es "==", la asignacion es "=".

Core 2 Duo E6600 @3.2Ghz + Xigmatek HDT-S1283 // 2x1GB OCZ SLI-Ready Edition 800Mhz Lat. 4-4-4-12 // ATI Shappire HD4870 512MB GDDR5 // Samsung 2253NW // Gigabyte 965P-DS3 // Topower 580W P5-EZ Plugin // Sound Blaster Audigy SE M@D X-Fi Xtreme Audio + Edifier X400 // Cooler Master 690 // A4tech X-750F
Notebook Compaq Presario CQ40-305LA
Extreme Level

carlitox091

entradas: 1263

20:24 25/08/2008

9
Cita Iniciado por Adris
Ver Mensaje
En la linea marcada, ponelo asi y contame q paso:

if(vec[cont]==compra[cont2].numero)

Ya lo intente , no pasa nada , sigue con lo mismo

Cita Iniciado por teto89
Ver Mensaje
hola, me parece que te faltan puntos y comas ";".
donde declaraste la variable cont2 compra?

Donde faltan los puntos y comas ?? , no faltan, en las funciones en el momento de desarrollar la funcion (Por ejemplo , void main (void) { ) abro corchetes , no va punto y coma . La variable compra esta declarada en la funcion.

Cita Iniciado por maynat
Ver Mensaje
Fijate que tenes un punto y coma en la definicion de la funcion
void eleccion (struct datos compra[20]);

Despues trata de identar un poco el codigo, al principio es molesto hacerlo pero despues te acostumbras y es mas facil para entender por si saltan errores

Saque el punto y coma ese y me tira los siguientes errores ahora :


Saludos y gracias a todos ,espero me puedan ayudar

PD: Fijense como use las funciones en el main (para ver si esta correcto)

Powered by:
Intel Core 2 Duo E4400 @ 2.80GHZ / Gigabyte P35-DS3L / WD 250GB 16MB Buffer / 2X1GB SuperTalent 667 CL5 @ 700 4 4 4 12 / VTB 8024 FULL + VTB COL-60-B Dual Rail 600w / XFX 8800GS Alpha Dog Edition

Midle End Level

maynat

entradas: 218

21:01 25/08/2008

10

Agregale una llave antes de que empiece la funcion eleccion, te falta cerrar la funcion ordenar

Extreme Level

carlitox091

entradas: 1263

21:28 25/08/2008

11
Cita Iniciado por maynat
Ver Mensaje
Agregale una llave antes de que empiece la funcion eleccion, te falta cerrar la funcion ordenar

uH GRACIAS CHE !! era esa pavada :P jajajaja

Ahora lo voy a organizar y probar bien a ver si funca todo ok ! saludos y gracias cualquier cosa avisoO!

Powered by:
Intel Core 2 Duo E4400 @ 2.80GHZ / Gigabyte P35-DS3L / WD 250GB 16MB Buffer / 2X1GB SuperTalent 667 CL5 @ 700 4 4 4 12 / VTB 8024 FULL + VTB COL-60-B Dual Rail 600w / XFX 8800GS Alpha Dog Edition