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: