Mình đang bí ở phần sắp xếp tên theo alphabel, mong mọi người có thể gợi ý hoặc sửa sai giúp mình, mình xin cảm ơn
Mã:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Canbo{
char ho[8];
char ten[8];
char diachi[20];
float luong;
int tuoi;
};
void nhapCB(Canbo *cb)
{
printf("Nhap ho va ten dem : ");
gets(cb->ho);
printf("Nhap ten : ");
gets(cb->ten);
fflush(stdin);
printf("Nhap dia chi : ");
gets(cb->diachi);
fflush(stdin);
printf("Nhap luong : ");
scanf("%f",&cb->luong);
printf("Nhap tuoi : ");
scanf("%d",&cb->tuoi);
fflush(stdin);
}
void xuatCB(Canbo *cb)
{
printf("%s %s | %f | %d | %s |
",cb->ho,cb->ten,cb->luong,cb->tuoi,cb->diachi);
}
void nhapDSCB(Canbo *pcb,int n)
{
for(int i=0;i<n;i++)
{
nhapCB(pcb+i);
}
}
void xuatDSCB(Canbo *pcb,int n)
{
printf("STT |Ho Va Ten| Luong | Tuoi | Dia Chi |
");
for(int i=0;i<n;i++)
{
printf("%d|",i+1);
xuatCB(pcb+i);
}
}
Canbo swap(Canbo *a,Canbo *b)
{
Canbo *temp= (Canbo *)malloc(100*sizeof(Canbo));
*temp=*a;
*a=*b;
*b=*temp;
}
void sapxep(Canbo *psv, int n)
{
for (int i = 1; i < 8; i++)
{
for (int j = 1; j < 8; j++)
{
if (strcmp((psv+j-1)->ten,(psv+j)->ten )> 0)
{
swap((psv+j-1),(psv+j));
}
}
}
}
int main()
{
int n;
Canbo *pcb;
Canbo *cb=(Canbo*)malloc(sizeof(Canbo));
int chon;
do{
printf("
1. Nhap 1 cb");
printf("
2. Nhap ds cb");
printf("
3. sap xep sv");
printf("
");
scanf("%d",&chon);
fflush(stdin);
switch(chon)
{
case 1:
nhapCB(cb);
xuatCB(cb);
break;
case 2:
printf("
Nhap so luong sv");
scanf("%d",&n);
pcb=(Canbo*)malloc(n*sizeof(Canbo));
fflush(stdin);
nhapDSCB(pcb,n);
xuatDSCB(pcb,n);
break;
case 3:
sapxep(pcb,n);
xuatDSCB(pcb,n);
break;
}
}while(chon<10);
}
View more random threads:
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...