hocsinh.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
#pragma pack(1)
struct hocsinh
{
char maSo[20];
char tenHS[20];
float diemToan, diemLy, diemHoa;
};
typedef struct hocsinh HOCSINH;
void nhapThongTinHocSinh(HOCSINH *);
void xuatThongTinHocSinhL(HOCSINH *);
float tinhDiemTrungBinh(HOCSINH *);
hocsinh.cpp
#include"hocsinh.h"
void nhapThongTinHocSinh(HOCSINH *&x)
{
x = new HOCSINH;
fflush(stdin);
cout << "\nNhap ma so hoc sinh:";
//gets(x->maSo);
gets_s(x->maSo);
fflush(stdin);
cout << "\nNhap ten hoc sinh :";
gets_s(x->tenHS);
do
{
cout << "\nMoi ban nhap diem Hoa cho hoc sinh :";
cin >> x->diemHoa;
if (x->diemHoa<0 || x->diemHoa>10)
{
cout << "\nDiem Hoa ban nhap ko hop le vui long kiem tra lai!!!";
}
} while (x->diemHoa<0||x->diemHoa>10);
do
{
cout << "\nMoi ban nhap diem Hoa cho hoc sinh :";
cin >> x->diemLy;
if (x->diemLy<0 || x->diemLy>10)
{
cout << "\nDiem Ly ban nhap ko hop le vui long kiem tra lai!!!";
}
} while (x->diemLy<0 || x->diemLy>10);
do
{
cout << "\nMoi ban nhap diem Hoa cho hoc sinh :";
cin >> x->diemToan;
if (x->diemToan<0 || x->diemToan>10)
{
cout << "\nDiem Toan ban nhap ko hop le vui long kiem tra lai!!!";
}
} while (x->diemToan<0 || x->diemToan>10);
}
void xuatThongTinHocSinhL(HOCSINH *x)
{
cout << "\n\t\tThong tin hoc sinh : \n";
cout << "\nMa so hoc sinh : " << x->maSo;
cout << "\nTen hoc sinh : " << x->tenHS;
cout << "\nDiem toan : " << x->diemToan;
cout << "\nDiem Ly : " << x->diemLy;
cout << "\nDiem Hoa : " << x->diemHoa;
}
float tinhDiemTrungBinh(HOCSINH *x)
{
return (x->diemHoa + x->diemLy + x->diemToan) / 3;
}
main.cpp
#include "hocsinh.h"
int main(int argc, char **argv)
{
HOCSINH *x;
nhapThongTinHocSinh(x);
xuatThongTinHocSinhL(x);
float diemTrungBinh = tinhDiemTrungBinh(x);
cout << "\nDiem trung binh : " << diemTrungBinh;
system("pause");
return 0;
}
lỗi như sau :
Error 3 error C4700: uninitialized local variable 'x' used d:\visual studio 2013\projects\struct\danh sach hoc sinh\main.cpp 5 1 danh sach hoc sinh
trong khi hàm nhập học sinh đã dùng tham chiều và hàm main gọi là 1 giá trị theo nguyên tắc thì đúng rồi