30/09/2018, 18:23

Lỗi RUNTIME CHECK FAILURE3 trong VISUAL

Khi em chạy chương trình sau :
ĐỀ BÀI :(nôm na)
Tạo chương trình nhap vao thong tin cua nhan vien co thuco tinh la struct Employ.
Gồm các chưa năng:
1 . Nhap vao thong tin
2 . Sap xep va hien thi thong tin nhan vien theo ten
3. Hien thi tat ca thong tin cac nhan vien
Và khi em lựa chọn chức năng 2 thì báo lỗi chưa khai báo biến temp.???
Em không hiểu vì sao lại như thế.Rõ ràng em đã khai báo trong ham main()
Các anh giúp em với ah

#include "stdafx.h"

typedef struct Employ {
    char name[30];
    char address[40];
    int job;
    int level;
} Employee;
void Nhap(Employee * Nhanvien,int N);
void Hienthi(Employee * Nhanvien,int N);
void Sapxepten(Employee * Nhanvien,int N,Employee temp);
int main() {
    // Khoi tao doi tuong cho struct  hay khoi tao 1 doi tuong nhan vien va cap phat bo nho cho no.
    Employee * Nhanvien;
    Employee temp;// Khoi tao nhan vien temp
    int N;
    Nhanvien = (Employee*)malloc (50 * sizeof(Employee));
    // Tao Me Nu
    cout << "
 +++++++++++++++++++++++WELCOME+++++++++++++++++++++++++++";
    cout << "
                ************************";
    cout << "
 *************************MENU***************************";
    cout << "
 
 	 1 . Nhap vao thong tin nhan vien ";
    cout << "
 	 2.Sap xep thong tin nhan vien theo ten ";
    cout << "
 	 3.Sap xep thong tin nhan vien theo nghe nghiep";
    cout << "
 	 4.Hien thi tat ca nhan vien ";
    cout << "
 	 5.Thoat Khoi Chuong Trinh";
    // Tao lua chon cho chuong trinh
    char c ;
    //c= getch();
    do {
        cout << "

  Nhap vao lua chon cua ban 1->5 :   ";
        c = getch();
        switch (c) {
        case '1':
            cout << "

 -------Nhap thong tin nhan vien ------------- ";
            cout << "
 So Luong Nhan Vien Can Nhap :   ";
            cin >> N;
            Nhap( Nhanvien, N);

            break;
        case '2':
            Sapxepten( Nhanvien,N,temp);
            break;
        case '3':
            break;
        case '4':
            Hienthi( Nhanvien, N);
            break;
        case '5':
            break;
        }

    } while (c != '5');
    getch();

}
void Nhap(Employee * Nhanvien,int N) {

    for(int i = 0; i < N ; i++) {
        cout << "
 Nhan Vien Thu " << i+1;
        cout << "
  Name :  ";
        fflush(stdin);
        gets(Nhanvien[i].name);
        cout << "
  Address :  ";
        fflush(stdin);
        gets(Nhanvien[i].address);
        cout << "
  Job :   ";
        cin >> Nhanvien[i].job;
        cout << "
  Level [1->7]:  ";
        do {
            cin >> Nhanvien[i].level;
            if(Nhanvien[i].level > 7)
                cout << "
 Nhap lai Level 1->7  :  ";
        } while((Nhanvien[i].level < 1)||(Nhanvien[i].level > 7));

    }
}
void Sapxepten(Employee * Nhanvien,int N,Employee temp) {
    cout << "
 Sap xep thep ten ";
    for(int i = 0; i < N-1; i++)
        for(int j = i+1; j < N; j++)
            if(strcmp(Nhanvien[j].name,Nhanvien[i].name) > 0) {
                temp = Nhanvien[j];
                Nhanvien[j] = Nhanvien[i];
                Nhanvien[i] = temp;
            }

    Hienthi(Nhanvien,N);

}
void Hienthi(Employee * Nhanvien,int N) {
    char * Nghe;
    cout << "
 -----------------Hien thi Nhan vien--------------------- ";
    cout << "
 Name"<<"		" << "Address"<<"		"<<"Job"<<"		"<<"Level";
    for(int i = 0; i < N; i++) {
        switch(Nhanvien[i].job) {
        case 1 :
            Nghe = "Chuyen Vien";
            break;
        case 2:
            Nghe = "Giao Dich Vien";
            break;
        case 3:
            Nghe = "Giam Doc";
            break;
        case 4:
            Nghe = "CEO";
            break;
        }
        cout << "
 Nhan vien " << i+1;
        cout <<"
 "<<Nhanvien[i].name<<"		"<<Nhanvien[i].address<<"		"<<Nghe<<"		"<<Nhanvien[i].level;
    }
}
Bài liên quan
0