#include <stdio.h>
#include <string.h>
#include <math.h>
struct LyLichNV{
char MaNhanVien[8];
char Ten[8];
char GiaDinh[1];
int SoCon;
char TrinhDo[2];
float LuongCanBan;
int NghiCoPhep;
int NghiKhongPhep;
int NgayLamThem;
char KetQua[2];
float LuongThucLinh;
};
typedef struct LyLichNV NV;
void NhapNV(NV *nv);
void NhapDanhSachNV(NV a[], int *x);
void CapNhatNV(NV *nv);
void TinhLuong(NV *nv);
void NhapNV(NV *nv) {
printf("Ma nhan vien: "); scanf("%s", nv->MaNhanVien);
printf("Ten: "); fflush(stdin); gets(nv->Ten);
printf("Gia Dinh: "); fflush(stdin); scanf("%c", &nv->GiaDinh);
printf("So con: "); scanf("%d", &nv->SoCon);
printf("Trinh Do Van Hoa: "); fflush(stdin); scanf("%s", nv->TrinhDo);
printf("Luong Can Ban: "); scanf("%f", &nv->LuongCanBan);
printf("\tCham Cong\n");
printf("So ngay nghi co phep: "); scanf("%d", &nv->NghiCoPhep);
printf("So ngay nghi khong phep: "); scanf("%d", &nv->NghiKhongPhep);
printf("So ngay lam them: "); scanf("%d", &nv->NgayLamThem);
printf("Ket qua lam viec: "); scanf("%s",&nv->KetQua);
}
void NhapDanhSachNV(NV a[], int *x){
int i;
for(i = 0; i < *x; i++){
printf("\tNhap nhan vien %d\n", i);
CapNhatNV(&a[i]);
}
}
void CapNhatNV(NV *nv){
NhapNV(nv);
TinhLuong(nv);
}
void TinhLuong(NV *nv) {//PhuTroi
float PhuTro = 0;
if(nv->SoCon > 2){
PhuTro += nv->LuongCanBan * 0.05;
}
if(nv->TrinhDo == "CH"){
PhuTro += nv->LuongCanBan * 0.1;
printf("Phu Tro: %f", PhuTro);
}
}
int main() {
NV a[50];
int n;
printf("Nhap so luong NV: ");
scanf("%d", &n);
NhapDanhSachNV(a,&n);
return 0;
}
Cho em hỏi là sau khi em nhập đúng CH vào TrinhDo rồi mà không hiểu sao hàm TinhLuong nó không chạy code trong if để tính giá trị cho PhuTro. Em cảm ơn mn nhiều ạ.