Code menu mua món ăn không chạy được

mn ơi, giúp em với ạ, em mới học lập trình.Đề kêu là viết chương trình hiện menu và cho phép nhập số lượng mua món ăn,nhập mã món ăn,xuất ra đơn giá ạ.em làm như này mà sao nó không chạy đc dòng if(x==food->maminan) trở đi ạ. Em cảm ơn ạ.

#include <stdio.h> 
#include <conio.h>
#include<math.h>
#include <string.h>
 
struct Foods
{
   char tenmonan[500]; //Ten cua mon an
   int mamonan, giatien;
};
struct Foods *food;

/* khai bao ham */
void inthongtinMonan(Foods *food);
void inthongtinMonan(Foods *food)
{
   printf( "+ Mon an: %s\n", food->tenmonan);
   printf( "+ Gia tien: %d\n", food->giatien);
   printf( "+ Ma mon an: %d\n", food->mamonan);
}

int main()
{
		 /*Foods List*/
    Foods boluclac;
    Foods suonbicha;
    Foods photai;
    Foods bunbo;
    Foods bokho;
    Foods bunrieu;
 
   /*bo luc lac*/
   strcpy( boluclac.tenmonan, "Bo Luc Lac");
   boluclac.giatien = 20000;
   boluclac.mamonan = 1;

    /*suon bi cha*/
   strcpy( suonbicha.tenmonan, "Suon Bi Cha");
   suonbicha.giatien = 35000;
   suonbicha.mamonan = 2;

    /*pho tai*/
   strcpy( photai.tenmonan, "Pho Tai");
   photai.giatien = 25000;
   photai.mamonan = 3;

    /*Bun bo*/
   strcpy( bunbo.tenmonan, "Bun bo");
   bunbo.giatien = 24000;
   bunbo.mamonan = 4;
   
    /*bo kho*/
   strcpy( bokho.tenmonan, "Bo Kho");
   bokho.giatien = 18000;
   bokho.mamonan = 5;
   
    /*bun rieu */
   strcpy( bunrieu.tenmonan, "Bun Rieu");
   bunrieu.giatien = 25000;
   bunrieu.mamonan = 6;

	 
	 strcpy( bunrieu.tenmonan, "Bun Rieu");		
   /*Menu*/
   printf("#===================== MENU ====================#\n");
   inthongtinMonan( &boluclac);
   printf("*********************\n");
   inthongtinMonan( &suonbicha);
   printf("*********************\n");
   inthongtinMonan( &photai);
   printf("*********************\n");
   inthongtinMonan( &bunbo);
   printf("*********************\n");
   inthongtinMonan( &bokho);
   printf("*********************\n");
   inthongtinMonan( &bunrieu);
   printf("#========== CHUC QUY KHACH NGON MIENG ==========#\n");
   int n,x,i;
   do{
   	printf("\n-> So luong ban muon dat: ");
    scanf("%d",&n);
    if(n<1)
    	printf("\nMoi ban nhap lai so luong:");
   }while(n<1);
	 long tien=0;
	 for(int j=0;j<n;j++ ){
 		printf("\nMoi ban nhap ma mon an thu %d: ",j+1);
 		scanf("%d",&x);
 		if(x==food->mamonan)
			printf("\nMa %d la mon: %s",x,food->tenmonan);
			tien+=food->giatien;
	 }
   printf("\n=======================HOA DON=======================\n");
   printf("Tong cong: \t\t\t %ld VND\n",tien);
	 getch();
   return 0;
}

Thế food là gì hả bạn?

1 Like

food là tên mình đặt con trỏ cho hàm Foods ý ạ

Cậu chưa khởi tạo biến food, nên cậu không thể truy cập vào trường của biến đó.
Cậu thử khởi tạo xem.

2 Likes

Chưa có biến food, bạn phải lấy element từ Foods.
Ví dụ: if(x == *(Foods+ j)->mamonan) Mình ko nhớ cú pháp lắm.

Em cảm ơn ạ, để em làm thử xem sao ạ

Để em khởi tạo thêm ạ.Em cảm ơn

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?