các bạn có thể chỉ giúp mình cách viết code để xuất được 3 người có điểm cao nhất trong mảng ra màn hình được không. mình mới tập tành học C nên còn gà làm.
code mình viết được đến đây rồi, đề bài còn bảo xuất 3 người có số điểm cao nhất mà mình chưa biết phài giải quyết thế nào. các bạn hướng dẫn mình với.
Mã:
#include <stdio.h>
#include <conio.h>
#include <string.h>

struct student{
	char id[5], name[31];
	int gender, mark;
};

typedef student SV;

SV ds[5];
int nhap();
int xuat();
int sortmark();

int main(int argc, char *argv[])
{
	nhap();
	xuat();
	printf("Danh sach sinh vien da sap xep theo diem");
	sortmark();
	xuat();
	
	return 0;
}

int nhap(){
	printf("***Nhap du lieu cho ds sinh vien***
");
	
	for(int i=0;i<5;i++){
		printf("Sinh vien thu %d: 
", i+1);
		printf("Nhap id: ");
		gets(ds[i].id);
		printf("Nhap name: ");
		gets(ds[i].name);
		printf("Nhap gender(1-male/0-female): ");
		scanf("%d",&ds[i].gender);
		printf("Nhap mark(0-100): ");
		scanf("%d",&ds[i].mark);
		fflush(stdin);
	}
}
int xuat(){
	printf("
***Danh sach Sinh Vien***
");
	for(int i=0;i<5;i++){
		printf("%-5s %-31s %-6s %3d
",ds[i].id,ds[i].name,ds[i].gender==1?"Nam":"Nu",ds[i].mark);
	}
}
int sortmark(){
	SV temp;
	for(int i=0;i<4;i++){
		for(int j=i+1;j<5;j++){
			if(ds[i].mark<ds[j].mark){
				temp=ds[i];
				ds[i]=ds[j];
				ds[j]=temp;
			}
		}
	}
}