#include <stdio.h>
struct SinhVien{
int ms;
char hoten[50];
};
void in(SinhVien sv){
printf("%d - %s\n",sv.ms,sv.hoten);
}
void inDS(SinhVien *dsSV,int n){
printf("In danh sach SV: \n");
for(int i=0;i<n;i++){
printf("%d/ ",i+1); in(dsSV[i]);
}
}
void nhapSV(SinhVien &sv){
printf("nhap ma so: ");
scanf("%d",&sv.ms);
fflush(stdin);
printf("nhap ho ten: ");
gets(sv.hoten);
}
int nhapDSSV (SinhVien *&dsSV){
printf("Nhap bao nhieu sinh vien?");
int n;
scanf("%d",&n);
dsSV = new SinhVien[n];
for(int i=0;i<n;i++){
printf("Sinh vien thu %d\n",i+1);
nhapSV(dsSV[i]);
}
return n;
}
void HoanVi(SinhVien &a,SinhVien &b){
SinhVien t = a;
a = b;
b = t;
}
void SapXep(SinhVien *&dsSV,int n){
for(int i=0;i<n-1;i++){
int minIndex = i;
int minKey = dsSV[i].ms;
for (int j=i+1;j<n;j++){
if (minKey>dsSV[j].ms){
minKey = dsSV[j].ms;
minIndex = j;
}
}
HoanVi(dsSV[i],dsSV[minIndex]);
}
}
int main(){
SinhVien *dsSV;
int n = nhapDSSV(dsSV);
inDS(dsSV,n);
SapXep(dsSV,n);
printf("Danh sach sau khi sap xep\n");
inDS(dsSV,n);
return 0;
}
struct SinhVien{
int ms;
char hoten[50];
};
void in(SinhVien sv){
printf("%d - %s\n",sv.ms,sv.hoten);
}
void inDS(SinhVien *dsSV,int n){
printf("In danh sach SV: \n");
for(int i=0;i<n;i++){
printf("%d/ ",i+1); in(dsSV[i]);
}
}
void nhapSV(SinhVien &sv){
printf("nhap ma so: ");
scanf("%d",&sv.ms);
fflush(stdin);
printf("nhap ho ten: ");
gets(sv.hoten);
}
int nhapDSSV (SinhVien *&dsSV){
printf("Nhap bao nhieu sinh vien?");
int n;
scanf("%d",&n);
dsSV = new SinhVien[n];
for(int i=0;i<n;i++){
printf("Sinh vien thu %d\n",i+1);
nhapSV(dsSV[i]);
}
return n;
}
void HoanVi(SinhVien &a,SinhVien &b){
SinhVien t = a;
a = b;
b = t;
}
void SapXep(SinhVien *&dsSV,int n){
for(int i=0;i<n-1;i++){
int minIndex = i;
int minKey = dsSV[i].ms;
for (int j=i+1;j<n;j++){
if (minKey>dsSV[j].ms){
minKey = dsSV[j].ms;
minIndex = j;
}
}
HoanVi(dsSV[i],dsSV[minIndex]);
}
}
int main(){
SinhVien *dsSV;
int n = nhapDSSV(dsSV);
inDS(dsSV,n);
SapXep(dsSV,n);
printf("Danh sach sau khi sap xep\n");
inDS(dsSV,n);
return 0;
}