01/10/2018, 08:49
Thắc mắc nhập xuất struct trong c?
ai chạy rồi fix giúp em với, bị lỗi ở 2 chỗ. 1 là k định dạng được dữ liệu,2 là chỗ hàm xuất 1 sinh viên.
#include <stdio.h>
struct sinhvien
{
char hoten[30];
int mssv;
float toan,li,hoa;
}sv;
void nhap1sv(sinhvien sv)
{
printf("Nhap ho ten: ");
fflush(stdin);
gets(sv.hoten);
printf("Nhap MSSV: ");
scanf("%d",&sv.mssv);
fflush(stdin);
printf("Nhap diem toan: ");
scanf("%d",&sv.toan);
fflush(stdin);
printf("Nhap diem li: ");
scanf("%d",&sv.li);
fflush(stdin);
printf("Nhap diem hoa: ");
scanf("%d",&sv.hoa);
fflush(stdin);
}
void nhapnsv(sinhvien sv[],int n)
{
for(int i=1;i<=n;i++)
{
printf("Nhap sinh vien thu %d.",i);
nhap1sv(sv[i]);
}
}
void tieude()
{
printf("%-20s %-10s %-10s %-10s %-10s
","HoTen","MSSV","DiemToan","DiemLi","DiemHoa");
}
void xuat1sv(sinhvien sv)
{
printf("%-20s %-10d %-10f %-10f %-10f
",sv.hoten,sv.mssv,sv.toan,sv.li,sv.hoa);
}
void xuatnsv(sinhvien sv[],int n)
{
for(int i=1;i<=n;i++)
{
xuat1sv(sv[i]);
}
}
void them1sv(sinhvien sv[],int n)
{
printf("Them 1 sinh vien.
");
nhap1sv(sv[n]);
n++;
}
int main(int argc, char *argv[])
{
printf("1.Nhap 1 sinh vien.
");
printf("2.Nhap n sinh vien.
");
printf("3.Xuat 1 sinh vien.
");
printf("4.Xuat n sinh vien.
");
printf("5.Them 1 sinh vien.
");
int chon;
int n;
sinhvien sv[40];
switch(chon)
{
case 1:nhap1sv(sv);break;
case 2:nhapnsv(sv,n);break;
case 3:xuat1sv(sv);break;
case 4:xuatnsv(sv,n);break;
case 5:them1sv(sv,n);break;
}
return 0;
}
Bài liên quan
đắng lòng, k ai thèm quan tâm, chắc mình hỏi ngu rồi
Bạn có thể nói rõ là bị gì không? Screenshot càng tốt
với lỗi ở chỗ case 1: nhap1sv(sv);
Hàm
nhap1sv
: Không sử dụng con trỏ hay kiểu trả về nên dữ liệu không thay đổi gì hết do tham số là 1 instance của struct, không phải mảng hay con trỏ và hàm cũng không trả về bất kỳ thứ gì.Hàm
nhapnsv
: Mình hiểu ý của bạn nhưng cách từ ý tưởng thành code thì không đúng.Hàm
them1sv
:n++
thật sự không có nghĩa vì nó không thay đổin
của main được.Các hàm xuất có lỗi vì không có dự liệu nào trong đó cả
Nói chung là sai từ đầu tới cuối (có lẽ không sai cú pháp thôi). Bạn nên học lại con trỏ thì hơn Chúc bạn thành công.
cám ơn bạn đã quan tâm, xin lỗi đã làm mất thời gian của bạn
fix lỗi này như nào vậy ạ
cái lựa chọn không hợp lí tí nào? nhớ may chọn luôn việc xuất sv trong khi chưa có gì thì sao
http://pastebin.com/F0HUEyKe
Bạn nên trỏ vào hàm con. Vì như thế mới giữ đc dữ liệu trong máy tính. Còn cách gõ thì cũng đúng. Còn về cách tư duy thì ko ổn mấy