#include <stdio.h>
#include <string.h>
struct NamSinh
{
int ngay;
int thang;
int nam;
};
struct Diem
{
int toan;
int ly;
int hoa;
float dtb;
};
struct SinhVien
{
char mssv[30];
char HoTen[50];
NamSinh Date;
Diem DiemHs;
};
void nhap(SinhVien A[], int &n);
void nhap1sv(SinhVien &x);
void xuatallmang(SinhVien A[], int n);
void xuat1sv(SinhVien x);
void timsinhviencodiemtbcaonhat(SinhVien A[], int n);
void sapxepdanhsachtheothutudiemtb(SinhVien A[], int n);
void sapxepanhsachtheothutudiemtoan(SinhVien A[], int n);
void timsinhviencodtblonhon5vakocomonnaoduoi3(SinhVien A[], int n);
void Sinhvienlontuoinhat(SinhVien A[], int n);
void inthongtinsinhvienduocnhap(SinhVien A[], int n);
void xuattensv(char A[50]);
void main()
{
SinhVien A[30];
int n;
nhap(A,n);
xuatallmang(A,n);
timsinhviencodiemtbcaonhat(A,n);
sapxepdanhsachtheothutudiemtb(A,n);
sapxepanhsachtheothutudiemtoan(A,n);
timsinhviencodtblonhon5vakocomonnaoduoi3(A,n);
Sinhvienlontuoinhat(A,n);
inthongtinsinhvienduocnhap(A,n);
}
void nhap(SinhVien A[], int &n)
{
scanf("%d", &n);
for(int i=0;i<n;i++)
nhap1sv(A[i]);
}
void nhap1sv(SinhVien &x)
{
fflush(stdin);
gets(x.mssv);
gets(x.HoTen);
int a,b,c;
scanf("%d%d%d", &a, &b, &c);
x.Date.ngay=a;
x.Date.thang=b;
x.Date.nam=c;
int d,e,f;
scanf("%d%d%d", &d, &e, &f);
x.DiemHs.toan=d;
x.DiemHs.ly=e;
x.DiemHs.hoa=f;
x.DiemHs.dtb=float(d+e+f)/3;
}
void xuatallmang(SinhVien A[], int n)
{
for(int i=0;i<n;i++)
xuat1sv(A[i]);
}
void xuat1sv(SinhVien x)
{
printf("%s\n%s\n%d %d %d\n%d %d %d %f\n", x.mssv, x.HoTen, x.Date.ngay, x.Date.thang, x.Date.nam, x.DiemHs.toan, x.DiemHs.ly,x.DiemHs.hoa, x.DiemHs.dtb);
}
void timsinhviencodiemtbcaonhat(SinhVien A[], int n)
{
int max=0;
for(int i=0;i<n-1;i++)
if(A[i].DiemHs.dtb<A[i+1].DiemHs.dtb)
max=i+1;
for(i=0;i<n;i++)
if(max==i)
{
xuattensv(A[i].HoTen);
break;
}
}
void sapxepdanhsachtheothutudiemtb(SinhVien A[], int n)
{
SinhVien tam;
for(int i=0;i<n-1;i++)
for(int j=i+1;i<n;j++)
if(A[i].DiemHs.dtb>A[j].DiemHs.dtb)
{
tam=A[i];
A[i]=A[j];
A[j]=tam;
}
xuatallmang(A,n);
}
void sapxepanhsachtheothutudiemtoan(SinhVien A[], int n)
{
SinhVien tam;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(A[i].DiemHs.toan<A[j].DiemHs.toan)
{
tam=A[i];
A[i]=A[j];
A[j]=tam;
}
xuatallmang(A,n);
}
void timsinhviencodtblonhon5vakocomonnaoduoi3(SinhVien A[], int n)
{
for(int i=0;i<n;i++)
if(A[i].DiemHs.dtb>5 && A[i].DiemHs.toan>=3 && A[i].DiemHs.ly>=3 && A[i].DiemHs.hoa>=3)
xuattensv(A[i].HoTen);
}
void Sinhvienlontuoinhat(SinhVien A[], int n)
{
SinhVien max;
max.Date.nam=A[0].Date.nam;
max.Date.thang=A[0].Date.thang;
max.Date.ngay=A[0].Date.ngay;
for(int i=1;i<n;i++)
if(max.Date.nam>A[i].Date.nam)
max=A[i];
else if(max.Date.nam==A[i].Date.nam)
if(max.Date.thang>A[i].Date.thang)
max=A[i];
else if(max.Date.thang==A[i].Date.thang)
if(max.Date.ngay>A[i].Date.ngay)
max=A[i];
xuattensv(max.HoTen);
}
void inthongtinsinhvienduocnhap(SinhVien A[], int n)
{
char tam[50];
gets(tam);
for(int i=0;i<n;i++)
if(strcmp(tam,A[i].HoTen)==0)
{
xuat1sv(A[i]);
break;
}
}
void xuattensv(char A[])
{
printf("%s", A);
}
Bài này em chạy nó in ra được 1 nửa rồi ngưng ko in nữa mọi người giúp em với.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?