C/Visual C - Ayuda error compilación!!

 
Vista:
sin imagen de perfil

Ayuda error compilación!!

Publicado por ana (1 intervención) el 02/09/2016 21:17:47
Buenas noches!! Me estoy iniciando en el lenguaje C y aún no tengo los conceptos muy claros.
Estoy realizando un ejercicio y me da un problema de compilación que no logro comprender ni solucionar.

Me dice: request for member '(una variable)' in something not a structure or union.

Me da ese error en cuatro ocasiones, dos de ellas para 'factura' y las otras dos para 'lista_pedidos'

Les adjunto mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <string.h>
#define N 50 // Número de entradas del menú
struct MENU_EL {
int id_plato;
char descripcion[100];
char tipo; // C=Comida, B=Bebida, P=Postre
float precio;
int ud_disponibles; // Unidades disponibles
};
struct PEDIDO {
int id_plato_pedido;
int uds_pedidas;
};
struct COMANDA {
struct PEDIDO lista_pedidos[50]; // Listado de pedidos
int nro_de_platos; // Nro de platos de la comanda (MAX 50)
int mesa; // Mesa a la que corresponde
float factura; // Precio total del pedido
};
int calcula_cuenta(struct MENU_EL *menu, int nro_platos_carta, struct COMANDA*comanda);
main(void)
{
struct MENU_EL menu[N]={{1,"Fanta",'B',1,5},{2,"Coca_cola",'B',1,3},{3,"Agua_Min",'B',1,7},{4,"Cerveza",'B',1.5,10},{5,"Montadito",'C',1.5,3},{6,"Ensaladilla_Rusa",'C',1.5,4},{7,"Patatas_Bravas",'C',2,3},{8,"Churrasco",'C',5,6},{9,"Helado",'P',2,2},{10,"Flan",'P',1.5,6},{11,"Tiramisu",'P',2.5,5}};
struct COMANDA c={{{1,2},{4,1},{6,2},{10,2},{9,1}}, 5,10,0};
int i,tam=11;
printf("Carta:\n\n");
for(i=0;i<tam;i++)
printf("%Plato nro %d-> %s\t\t %c \t %f Eur \t %d Uds. disponibles\n",menu[i].id_plato, menu[i].descripcion, menu[i].tipo, menu[i].precio,menu[i].ud_disponibles);
printf("\n\nComanda de ejemplo de la mesa %d:\n\n",c.mesa);
for(i=0;i<c.nro_de_platos;i++)
printf("id_plato= %d, %d unidades pedidas\n",c.lista_pedidos[i].id_plato_pedido, c.lista_pedidos[i].uds_pedidas);
calcula_cuenta(menu, tam, &c);
printf("\n\nSu funcion calcula una cuenta para la mesa %d de %.2f Eur\n",c.mesa,c.factura);
printf("El resultado correcto es 11.50 Eur\n", c.mesa,c.factura);
 
}
int calcula_cuenta(struct MENU_EL *menu, int nro_platos_carta, struct COMANDA*comanda)
{
int j,x,k=0;
float aux,s=0,factura=0;
for(j=0;j<nro_platos_carta;j++)
{
	x=comanda.lista_pedidos[j].id_plato_pedido;
	while(menu[k].id_plato!=x || k<nro_platos_carta)
	{
		k++;
	}
	aux=menu[k].precio;
	s=(comanda.lista_pedidos[j].uds_pedidas)*aux;
	comanda.factura=comanda.factura+s;
}
}

Muchísimas gracias de antemano!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder