Nhập thông tin sinh viên . Xuất thông tin ,tìm sinh viên , đếm số lượng sinh viên có dtb <5 ,sắp xếp tăng dần theo dtb .

#include<stdio.h>
#include<math.h>
#include<string.h>
#define MAX 100
struct date
{
int ngay, thang, nam;
};
void nhapdate(date &a)
{
printf(“Nhap ngay thang nam sinh (dd/mm/yyyy): “);
scanf(“%d%*c%d%*c%d”,&a.ngay,&a.thang,&a.nam);
}
void xuatdate(date a)
{
printf(” Ngay sinh: %02d/%02d/%04d”,a.ngay,a.thang,a.nam);
}
struct ttsv
{
char MS[11];
char Ten[11];
date Sn;
char lop[8];
char GT;
float toan,ly,tin,dtb;
};
typedef struct ttsv sv;
//3.1
void Nhapsv(sv &a)
{
fflush(stdin);
printf(“\nNhap ho va ten: “); gets(a.Ten);
fflush(stdin);
printf(“\nNhap ma so sinh vien: “); gets(a.MS);
fflush(stdin);
printf(“Nhap lop hoc: “); scanf(“%s”,&a.lop);
nhapdate(a.Sn);
fflush(stdin);
do{
fflush(stdin);
printf(“Nhap gioi tinh (nam=y/nu=x): “);
scanf(“%c”,&a.GT);
} while (a.GT != ‘x’ && a.GT != ‘y’ && a.GT!= ‘X’ && a.GT!= ‘Y’);
printf(“Nhap diem toan: “);
scanf(“%f”,&a.toan);
printf(“Nhap diem ly: “);
scanf(“%f”,&a.ly);
printf(“Nhap diem tin: “);
scanf(“%f”,&a.tin);
a.dtb=(a.toan+a.ly+a.tin)/3;
printf(” diem DTB:%f “,a.dtb);

}
//3.2
void Xuatsv(sv a)
{
printf(“\nMa so : %s Ten :%s Lop :%s”,a.MS,a.Ten,a.lop);
xuatdate(a.Sn);
if (a.GT==’y’ || a.GT==’Y’)
printf (“\t Nam”);
else
printf (“\t Nu”);
printf(“\tDiem Toan : %f\t Diem LY : %f\tDiem Tin : %f\tDiem TB : %f”,a.toan,a.ly,a.tin,a.dtb);
}
//3.3
void Nhapdssv(sv b[], int &n)
{
for (int i=0; i<n;i++)
{
printf(“\nNhap sinh vien thu: %d”, i+1);
Nhapsv(b[i]);
}
}
//3.4
void Xuatdssv(sv b[], int n)
{
for (int i=0; i<n ; i++)
{
Xuatsv(b[i]);
printf (“\n”);
}
}
//3.5
void Timsv(sv b[], int n, char x[20])
{
int flag = 0;
for (int i=0;i<n;i++)
if ( strcmp(b[i].Ten, x) == 0 )
{
Xuatsv(b[i]);
flag = 1;
}
if (flag==0)
printf (“Khong tim thay!”);
}
//3.6
void Xuatdtblonhon5(sv b[], int n)
{
for (int i=0;i<n;i++)
if (b[i].dtb>5)
Xuatsv(b[i]);
printf(” \n “);
}
void XuatsvCNTT(sv b[], int n)
{
for (int i=0;i<n;i++)
if ((b[i].lop[3]==’t’&& b[i].lop[4]==’h’) || (b[i].lop[3]==’T’&&b[i].lop[4]==’H’))
Xuatsv(b[i]);
printf(” \n “);
}
int Demsvnu(sv b[], int n)
{
int dem=0;
for (int i=0;i<n;i++)
if (b[i].GT==’x’ || b[i].GT==’X’)
dem++;
return dem;
}
void SapxepDTB(sv b[], int n)
{
sv tam;
for (int i=0;i<n;i++)
for (int j=i+1;j<n;j++)
if(b[i].dtb>b[j].dtb)
{
tam=b[i];
b[i]=b[j];
b[j]=tam;
}

}
int main()
{
int n;
sv a;
char Ten[20];
sv b[MAX];
Nhapsv(a);
Xuatsv(a);
printf (“\nSo luong sinh vien: “);
scanf (“%d”,&n);
Nhapdssv(b, n);
printf (“Danh sach sinh vien vua nhap: \n”);
Xuatdssv(b, n);
printf (“\nNhap ten sinh vien can tim: “);
fflush(stdin);
gets(Ten);
Timsv(b,n,Ten);
printf (“\nDanh sach sinh vien co dtb > 5: \n”);
Xuatdtblonhon5(b,n);
printf (“\nDanh sach sinh vien CNTT: \n”);
XuatsvCNTT(b,n);
printf (“\nSo luong sinh vien nu: %d\n”,Demsvnu(b,n));
printf (“Danh sach sinh vien sau sap xep: \n”);
SapxepDTB(b,n);
Xuatdssv(b,n);
return 0;
}

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Hotline: 0989.13.58.13