Struct gom nhóm các biến khác kiểu dưới một tên. Đặc điểm: gán toàn bộ struct, struct lồng nhau (nested), truyền struct/con trỏ struct cho hàm.
Chương trình quản lý tồn kho
#include <stdio.h>
#include <conio.h>
void main() {
struct date { int day, month, year; };
struct details {
char name[20];
int price, code, qty;
struct date mfg;
};
struct details item[50];
int n, i;
printf("Enter number of items: "); scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Item name: "); scanf("%s", item[i].name);
printf("Item code: "); scanf("%d", &item[i].code);
printf("Quantity: "); scanf("%d", &item[i].qty);
printf("Price: "); scanf("%d", &item[i].price);
printf("Mfg date (dd-mm-yyyy): "); scanf("%d-%d-%d", &item[i].mfg.day, &item[i].mfg.month, &item[i].mfg.year);
}
// In bảng tồn kho đẹp
printf("***** INVENTORY *****\n");
printf("S.N.| NAME | CODE | QTY | PRICE | MFG.DATE\n");
for (i = 0; i < n; i++)
printf("%d %-15s %-d %-5d %-5d %d/%d/%d\n", i+1, item[i].name, item[i].code, item[i].qty, item[i].price, item[i].mfg.day, item[i].mfg.month, item[i].mfg.year);
getch();
}
Kết quả mẫu
Enter number of items: 5 Item name: pen ... sharpner ***** INVENTORY ***** 1 pen 12 50 25 12/2/2020 2 pencil 15 100 30 11/3/2020 3 book 34 30 60 15/4/2020 4 bag 39 20 70 12/3/2021 5 sharpner 33 20 40 12/4/2021