#include “stdafx.h”
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct sinhvien
{
char hoten[50], masv[12];
float d1, d2;
float dtb;
}a[100];
int kiemtra(sinhvien a[], int k, char ma[])
{
int i;
for (i = 0; i<k; i++)
if (strcmp(a[i].masv, ma) == 0)
return 1;
return 0;
}
void nhap(sinhvien *a, int n)
{
int i;
for (i = 0; i<n; i++)
{
//fflush(stdin);
_flushall;
do
{
printf(“Nhap ma sinh vien:”);
gets_s(a[i].masv);
} while (kiemtra(a, i, a[i].masv));
printf("Nhap ten sinh vien:");
gets_s(a[i].hoten);
printf("Nhap diem thi mon 1:");
scanf_s("%f", &a[i].d1);
printf("Nhap diem thi mon 2:");
scanf_s("%f", &a[i].d2);
a[i].dtb = (float)(a[i].d1 + a[i].d2) / 2;
}
}
void hoandoi(sinhvien a[], sinhvien *x1, sinhvien *x2)
{
sinhvien t;
t = *x1;
*x1 = *x2;
*x2 = t;
}
void sapxep(sinhvien a[], int n)
{
int i, j;
for (i = 0; i<n - 1; i++)
{
for (j = i + 1; j<n; j++)
if (a[i].dtb < a[j].dtb)
hoandoi(a, &a[i], &a[j]);
}
}
void indanhsach(sinhvien a[], int n)
{
int vt = 1;
int i, k = 1;
for (int i = 0; i<n; i++)
{
printf("\n");
printf("%d\t", vt);
if (a[i].dtb == a[i + 1].dtb)
{
k++;
}
else
{
vt = vt + k;
k = 1;
}
printf("%s\t", a[i].masv);
printf("%s\t", a[i].hoten);
printf("%0.1f\t", a[i].d1);
printf("%0.1f\t", a[i].d2);
printf("%0.1f\t", a[i].dtb);
}
}
int main()
{
sinhvien a[100];
int n;
printf("Nhap n=");
scanf_s("%d", &n);
nhap(a, n);
sapxep(a, n);
printf("\n");
printf("VT\t");
printf("MASV\t");
printf("TENSV\t");
printf("DM1\t");
printf("DM2\t");
printf("DTB\t");
indanhsach(a, n);
}
đoạn code này mình cop trên google cũng không chạy nhé