Bài tập C - Nhập và hiển thị sinh viên bởi sử dụng Struct trong C
Đề bài: Viết chương trình C nhập và hiển thị sinh viên bởi sử dụng Struct trong C.
Lời giải
Dưới đây là chương trình C để giải bài nhập và hiển thị sinh viên bởi sử dụng Struct trong C:
#include<stdio.h> #define SIZE 50 struct student { char name[30]; int id; int marks[3]; }; int main() { int i, j, max, count, total, n, a[SIZE], ni; struct student st[SIZE]; printf("Nhap so luong sinh vien: "); scanf("%d", &n); printf("----- Nhap thong tin sinh vien -----\n"); for (i = 0; i < n; i++) { printf("Nhap ten cho sinh vien %d: ", i + 1); scanf("%s", &st[i].name); printf("Nhap ma sinh vien cho sinh vien %d: ", i + 1); scanf("%d", &st[i].id); } printf("----- Nhap diem thi cho sinh vien -----\n"); for (i = 0; i < n; i++) { for (j = 0; j <= 2; j++) { printf("Nhap diem thi %d cho sinh vien %d: ", j + 1, st[i].id); scanf("%d", &st[i].marks[j]); } } printf("----- Tong diem cua sinh vien -----"); for (i = 0; i < n; i++) { total = 0; for (j = 0; j < 3; j++) { total = total + st[i].marks[j]; } printf("\nTong diem cua sinh vien %s la: %d", st[i].name, total); a[i] = total; } printf("\n----- Liet ke mon hoc co diem cao nhat -----"); for (j = 0; j < 3; j++) { max = 0; for (i = 0; i < n; i++) { if (max < st[i].marks[j]) { max = st[i].marks[j]; ni = i; } } printf("\nSinh vien %s dat diem cao nhat = %d voi mon hoc: %d", st[ni].name, max, j + 1); } printf("\n----- Sinh vien co tong diem cao nhat -----"); max = 0; for (i = 0; i < n; i++) { if (max < a[i]) { max = a[i]; ni = i; } } printf("\nSinh vien %s co tong diem cao nhat.", st[ni].name); return(0); }
Chạy chương trình C trên cho kết quả như sau: