Chương trình chỉ nhập được 1 input

em định viết chương trình C về bán hàng. Nhưng mà sau khi xong case 1 đến case 2 lúc tìm thì chỉ tìm được cái nhập đầu tiên mà không nhập được cái thứ 2. Và cả case 3 cũng chỉ tính tiền cái đầu tiên. Anh chị xem giúp em với ạ. Em cảm ơn

#include<stdio.h>
#include<string.h>
int main()
{
	//khai bao
	int choice, size;
	char mathang[50] [100];
	float soluong[50], DG[50], TT1MH[50], THD, STPTT, STKD, STPTL;
	//DG: Don gia
	//TT1MH: Tong tien 1 mat hang
	//THD: Tong hoa don
	//STPTT: So tien phai thanh toan
	//STKD: So tien khach dua
	//STPTL: So tien phai tra lai
	
	do
	{
		printf("1. Nhap mat hang\n");
		printf("2. Tim kiem mat hang da nhap\n");
		printf("3. Thanh toan\n");
		printf("4. In hoa don thanh toan\n");
		printf("0. Thoat\n");
		printf("Chon chuc nang: ");
		scanf("%d", &choice);
		switch(choice)
		{
			case 1:
				printf("Nhap so mat hang muon nhap: ");
				scanf("%d", &size);
				for(int i = 0; i < size; i++)
				{
					printf("Nhap ten mat hang %d: ",i + 1);
					fflush(stdin);
					gets(mathang[i]);
					printf("So luong: ");
					scanf("%f", &soluong[i]);
					printf("Don gia: ");
					scanf("%f", &DG[i]);
					printf("-----------------------------------------------\n");
				}
				size++;
				break;
			
			case 2:
				char search[100];
				printf("Nhap ten mat hang muon tim: ");
				fflush(stdin);
				gets(search);
				int i, j, choice2;
				for (int i = 0; i < size; i++);
				{
					if(strcmp(mathang[i], search)==0)
					{
						do
						{
							printf("--da tim thay mat hang--\n");
							printf("1. Xoa\n");
							printf("2. Sua\n");
							printf("0. Ve menu chinh\n");
							printf("Vui long chon thao tac: ");
							scanf("%d", &choice2);
							switch(choice2)
							{
								case 1:
									if(i<size-1)
									{
										for(j = i + 1; j < size; j++)
										{
										strcpy(mathang[j-1], mathang[i]);
										soluong[j-1] = soluong[i];
										DG[j-1] = DG[i];	
										}	
									}
									printf("Da xoa mat hang nay\n");
									size--;
									break;
								
								case 2:
									printf("--Nhap cac thong tin muon sua--\n");
									printf("Nhap ten mat hang %d: ", i+1);
									fflush(stdin);
									gets(mathang[i]);
									printf("So luong: ");
									scanf("%f", &soluong);
									printf("Don gia: ");
									scanf("%f", &DG[i]);
									printf("--Da sua mat hang nay--\n");
									break;
								case 0:
									printf("Dang quay lai!!!\n");
									printf("-----------------------------------------------\n");
									break;
								default:
									printf("Chon sai, vui long chon lai\n");
									break;
							}
							if(i==size)
							{
								printf("Khong tim thay mat hang nay\n");
							}
						}while(choice2!=0);
					}
				}
				break;
			
			case 3: 
			TT1MH[i] = soluong[i] * DG[i];
			THD = TT1MH[i]+=1;
			STPTT = THD - THD * 0.01;
			printf("So tien phai thanh toan: %6.2f\n", STPTT);
			printf("So tien khach dua: ");
			scanf("%f", &STKD);
			STPTL = STKD - STPTT;
			printf("So tien phai tra lai: %6.2f\n", STPTL);
			printf("-----------------------------------------------\n");
			break;
			
			case 4:
				printf("-----Hoa don thanh toan-----\n");
				for (int i; i < size; i++)
				{
					printf("Mat hang %d: %s\n So luong: %6.2f\n Don gia: %6.2f\n", i+1, mathang[i], soluong[i], DG[i]);
				}	
					printf("So tien phai thanh toan: %6.2f\n", STPTT);
					printf("So tien khach dua: %6.2f\n",STKD);
					printf("So tien phai tra lai: %6.2f\n", STPTL);
					printf("-----------------------------------------------\n");
				break;
			
			case 0:
				printf("----------Cam on quy khach da den mua hang----------\n");
				break;
			default:
				printf("Sai cu phap, vui long chon lai");
				break;
		}
	}while(choice!=0);
	return 0;
}

Tách mỗi chức năng thành 1 hàm để dễ quản lý bạn à.
Bạn nhập xong thì in ra thử xem danh sách đã đúng chưa.

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