Một ví dụ về lập trình cấu trúc

#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;
}

Bài liên quan

Bài liên quan