như trên tiêu đề ạ.
đề yêu cầu sắp xếp một mảng công nhân theo giờ làm(gio_lam) giảm dần
em bị kẹt chỗ khởi tạo biến tạm để sắp xếp trong mảng struct.
IDE không báo lỗi nhưng console lại không chạy hàm sap_xep và return về giá trị âm.
newbie nên có sai sót mọi người cứ góp ý ạ
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
typedef struct cong_nhan
{
char ten[31];
int nam_sinh;
int gio_lam;
}congnhan;
void Nhap_mang(struct cong_nhan a[], int n)
{
for(int i = 0; i < n; i++)
{
printf("Cong nhan thu %d", i);
printf("\nTen: ");
fflush(stdin);
gets(a[i].ten);
printf("\nNam sinh: ");
scanf("%d", &a[i].nam_sinh);
printf("\nSo gio lam: ");
scanf("%d", &a[i].gio_lam);
}
}
void Xuat_mang(congnhan a[], int n)
{
for(int i = 0; i < n; i++)
{
printf("\nThong tin cong nhan thu %d:\n", i);
printf("Ten: %s \t Nam sinh: %d \t So gio lam: %d \n", a[i].ten, a[i].nam_sinh, a[i].gio_lam);
}
}
void sap_xep(congnhan a[], int n)
{
congnhan tmp;
for(int i = 0; i < n; i++)
for(int j = i + 1; j < n; i++)
{
if(a[i].gio_lam < a[j].gio_lam)
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
int main()
{
int n;
congnhan a[MAX];
do
{
printf("Nhap so cong nhan: ");
scanf("%d", &n);
if(n <= 0)
printf("So cong nhan ban vua nhap khong hop le, Hay nhap lai!");
}while(n <= 0);
Nhap_mang(a, n);
printf("\n\nMang cong nhan truoc khi sap xep: ");
Xuat_mang(a, n);
sap_xep(a, n);
printf("\n\nMang cong nhan sau khi sap xep: ");
Xuat_mang(a, n);
return 0;
}