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;
}
Phan Vũ viết 11:05 ngày 01/10/2018

đắng lòng, k ai thèm quan tâm, chắc mình hỏi ngu rồi

*grab popcorn* viết 11:02 ngày 01/10/2018

Bạn có thể nói rõ là bị gì không? Screenshot càng tốt

Phan Vũ viết 11:04 ngày 01/10/2018

với lỗi ở chỗ case 1: nhap1sv(sv);

Khoa NTA viết 10:58 ngày 01/10/2018

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 đổi n 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.

Phan Vũ viết 10:56 ngày 01/10/2018

cám ơn bạn đã quan tâm, xin lỗi đã làm mất thời gian của bạn

vu van thinh viết 11:05 ngày 01/10/2018

fix lỗi này như nào vậy ạ

huyentrang viết 10:56 ngày 01/10/2018

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

huyentrang viết 10:51 ngày 01/10/2018

http://pastebin.com/F0HUEyKe

nampham viết 10:52 ngày 01/10/2018

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

Bài liên quan
0