30/09/2018, 19:25
Cho mình hỏi lỗi gì với
#include<stdio.h>
#include<string.h>
#include<iostream>
#define max 100
using namespace std;
struct NV // kieu phan tu cua danh sach
{
int manv;
char hoten[20];
int nsinh;
float luong;
};
struct List //kieu danh sach
{
NV a[max];
int last;
};
void create(List &l)
{
l.last==0;
}
int empty(List l)
{
return l.last==0;
}
int full(List l)
{
return l.last==max;
}
NV taonhanvien(int ma,char *ten,int ns,float Luong)
{
NV nv;
nv.manv=ma;
strcpy(nv.hoten,ten);
nv.nsinh=ns;
nv.luong=Luong;
return nv;
}
void add(List &l,NV nv)
{
if(!full(l))
{
l.last++;
l.a[l.last]=nv;
}
}
void in(NV nv)
{
cout<<endl<<nv.manv<<"-"<<nv.hoten<<"-"<<nv.nsinh<<"-"<<nv.luong;
}
void inds(List l)
{
for(int i=1;i<=l.last;i++)
in(l.a[i]);
}
void del(int k,List &l)
{
for(int i=k;i<=l.last;i++)
l.a[i]=l.a[i+1];
l.last--;
}
void del_del(List &l)
{
for(int i=1;i<=l.last;i++)
if(l.a[i].manv==4)
del(i,l);
}
main()
{
List l;
create(l);
add(l,taonhanvien(1,"Viet Nguyen",1996,80.5));
add(l,taonhanvien(2,"Khanh Linh",1996,5.5));
add(l,taonhanvien(3,"Phuong Oanh",1996,7.5));
add(l,taonhanvien(4,"Linh ro",1996,6.5));
add(l,taonhanvien(5,"Oanh",1996,5.5));
inds(l);
del_del(l);
inds(l);
}
Bài liên quan
khi mình gọi số chẵn lần hàm add thì k in được,lẻ thì in. Lỗi gì kì vậy
Hàm add bạn gán xong mới thực hiện ++ và sửa tất cả vòng lặp chạy từ 0 nhé. Chỉ số mảng bắt đầu từ 0
Ơ mình khởi tạo để cho chỉ số mảng bđ từ 1 rồi mà
đây nè tuannguyen…
Mình nghĩ sai ở chỗ này, nếu khởi tạo cho biến là 0 thì phải dùng phép gán (=), chứ không phải so sánh bằng (==):
l.last = 0
.A đúng chỗ đó rồi Hai