30/09/2018, 19:15
Cho e hỏi lỗi bài này sai chỗ nào ạ
#include<stdio.h>
#include<string.h>
#include<iostream>
#define max 100
using namespace std;
struct SV // kieu phan tu cua danh sach
{
char maSV[9];
char hoten[20];
int nsinh;
float TB;
};
struct List //kieu danh sach
{
SV a[max];
int last;
};
void create(List &l)
{
l.last==-1;
}
int empty(List l)
{
return l.last==-1;
}
int full(List l)
{
return l.last==max;
}
void nhap(SV &sv)
{
cout<<endl<<"Ma sinh vien: "; fflush(stdin);
gets(sv.maSV);
if(strcmp(sv.maSV,"***")==0)
return;
cout<<"ho ten: "; fflush(stdin);
gets(sv.hoten);
cout<<"Nam sinh: ";
cin>>sv.nsinh;
cout<<"diem TB: ";
cin>>sv.TB;
}
void nhapds(List l,int n)
{
int i;
SV sv;
for(i=1;i<=n;i++)
{
if(!full(l))
{
cout<<"Nhap vao phan tu thu "<<i;
nhap(l.a[i]);
}
}
}
void hienthi(SV &sv)
{
cout<<endl<<sv.maSV<<"-"<<sv.hoten<<"-"<<sv.nsinh<<"-"<<sv.TB;
}
void hienthids(List l,int n)
{
int i;
SV sv;
for(i=1;i<=n;i++)
{
cout<<"Sinh vien "<<i;
hienthi(l.a[i]);
}
}
main()
{
List l;
int n;
cout<<"Nhap so luong phan tu thuc: ";
cin>>n;
create(l);
full(l);
nhapds(l,n);
hienthids(l,n);
}
Bài liên quan
lúc chạy thì đến đoạn in nó cứ in các số ltinh ý ạ
Thử sửa thành List &l. Anh nghĩ là sai chỗ này
được rồi ạ. a ơi giải thích cho e được k ?..đoạn này e chưa hiểu bản chất
Vậy tại sao em biết dùng dấu
&
ở dòng nàyvoid nhap(SV &sv)
Có nhiều topic đã bàn luận về vấn đề này:
Hoặc ở đây có ví dụ rất rõ ràng:
7.3 — Passing arguments by reference
While pass by value is suitable in many cases, it has a couple of limitations. First, when passing a large struct or class to a function, pass by value will make a copy of the argument into the fun…
Theo như tài lệu a đưa ở trên thì e thấy đây là truyền tham chiếu.tác dụng là nhanh,đỡ tốn bộ nhớ và có thể thay đổi giá trị . Nhưng e vẫn chưa hiểu vì sao e đã nhập vào thông tin nhưng khi in nó lại ra các sô ltinh. Tác dụng tham chiếu trong t.h này là sao anh
Thiếu & nên thông tin em nhập vào chưa được đưa vào trong List, thằng List trong hàm nhapds nó chỉ là cục bộ và em chỉ mới nhập chơi chơi cho thằng này thôi. Còn thằng List bên ngoài (thằng List em dùng để xuất ra) nó chưa có những thông tin mà em nhập vào.
À dạ… em có chút hiểu hơn rồi anh…em cảm ơn anh.