01/10/2018, 00:32
Thêm số lượng sinh viên vào trong danh sách ban đầu bằng cấu trúc struct nhưng không được mong anh chị giúp đỡ
khi nhập sinh viên vào thì được nhưng xuất ra danh sách sinh viên chỉ xuất ra danh sách ban đầu
và em không hiểu tại sao khi truyền tham chiếu vào themmotsinhvien(int soluong,danhsach &ds) thì báo lỗi
đây là code của em
#include<iostream>
#include<string.h>
using namespace std;
typedef struct sinhvien
{
string ten;
float diem;
int mssv;
};
void nhapsinhvien(sinhvien &x)
{
fflush(stdin);
cout<<"
nhap ten sinh vien:";
getline(cin,x.ten);
fflush(stdin);
cout<<"
nhap diem:";cin>>x.diem;
fflush(stdin);
cout<<"
nhap ma sinh vien:";cin>>x.mssv;
}
void xuatmotsinhvien(sinhvien x)
{
cout<<"
ten:"<<x.ten;
cout<<"
diem:"<<x.diem;
cout<<"
mssv:"<<x.mssv;
}
typedef struct danhsach
{
int n;
sinhvien *arr;
};
void nhapnhieusinhvien(danhsach ds)
{
int i;
for(i=0;i<ds.n;i++)
{
nhapsinhvien(ds.arr[i]);
}
}
void xuatnhieusinhvien(danhsach ds)
{
int i;
for(i=0;i<ds.n;i++)
{
xuatmotsinhvien(ds.arr[i]);
}
}
void themmotsinhvien(int soluong,danhsach ds)
{
sinhvien t;
int i,z;
z=(ds.n)+soluong;
for(i=ds.n;i<z;i++)
{
ds.arr=new sinhvien[(ds.n)++];
nhapsinhvien(t);
}
}
int main()
{
int soluong;
sinhvien x;
danhsach ds;
cout<<"nhap so luong sinh vien:";cin>>ds.n;
ds.arr=new sinhvien[ds.n];
nhapnhieusinhvien(ds);
cout<<"
mang sau khi them sinh vien:";
cout<<"
nhap so luong sinh vien can them:";cin>>soluong;
themmotsinhvien(soluong,ds);
xuatnhieusinhvien(ds);
}
Bài liên quan
Update một chút,
flush()
, hàm này vô dụng với stream.sao em thử chạy code của anh sao ko được vậy
VS Community 2015…
chỗ hàm themmotsinhvien bạn khởi tạo struct trong vòng lặp for -> nó bị lỗi là đúng rồi!. Bạn để nó ra ngoài đi.
cám ơn hai anh nhiều em cuối cùng cũng làm ra rồi anh có thể cho em xin facebook đề làm quen không
đây là code của em