Nội dung chính
Bài tập C - Sắp xếp mảng Struct trong C
Đề bài: Viết chương trình C sắp xếp mảng Struct trong C.
Yêu cầu: sử dụng Struct để nhập thông tin các thành phố khác nhau. Mỗi thành phố (city) có: tên thành phố (name), tổng thu nhập (income), dân số (population). Sau đó hiển thị thành phố có tổng thu nhập cao nhất và thành phố đông dân nhất.
Lời giải
Dưới đây là chương trình C để giải bài sắp xếp mảng Struct trong C:
#include<stdio.h> #define MAX 50 struct city { char name[50]; long int population; float income; } ct[MAX]; /* khai bao mang cac ctruct */ int main() { int i, n, mp, mi, maxPopulation, maxIncome; float rate; mp = mi = -1; maxPopulation = maxIncome = 0; printf("Nhap so thanh pho: "); scanf("%d", &n); for (i = 0; i < n; i++) { printf("\nNhap chi tiet thanh pho thu %d: \n", i + 1); printf("Nhap ten thanh pho: "); scanf("%s", &ct[i].name); printf("Nhap tong so dan: "); scanf("%ld", &ct[i].population); printf("Nhap tong thu nhap: "); scanf("%f", &ct[i].income); } for (i = 0; i < n; i++) { // tim thanh pho co dan so dong nhat if (ct[i].population >= maxPopulation) { maxPopulation = ct[i].population; mp++; } // tim thanh pho co thong thu nhap cao nhat if (ct[i].income > maxIncome) { maxIncome = ct[i].income; mi++; } } printf("\nThanh pho co dan so dong nhat: %s", ct[mp].name); printf("\nThanh pho co tong thu nhap cao nhat: %s", ct[mi].name); return (0); }
Chạy chương trình C trên cho kết quả như sau: