đề bài là dùng struct để nhập thông tin một lượng sinh viên, nội dung nhập là: tên, địa chỉ nhà, điểm toán, văn, anh, ngày sinh (đủ ngày tháng năm); xuất ra thông tin vừa nhập.
đây là kết quả khi chạy:
nhap so sinh vien: 1
nhap thong tin sinh vien thu 1
nhap ten: dfhd
nhap dia chi: dhdd
nhap diem toan: 1
nhap diem ly: 4
nhap diem hoa: 6
nhap ngay sinh: 4
chương trình chỉ chạy đến nhập ngày sinh, không nhập được tháng, năm và cũng không xuất được ra. mọi người tìm lỗi giúp em với ạ. dưới đây là code:
#include<stdio.h>
#include<stdlib.h>
struct ngaysinh
{
int ngay;
int thang;
int nam;
};
typedef struct ngaysinh ns;
struct sinhvien
{
char name[30],diachi[30];
float toan;
float van;
float anh;
ns NgaySinh;
};
typedef struct sinhvien sv;
void nhap(sv *SinhVien){
printf("nhap ten: ");fflush(stdin);gets(SinhVien->name);
printf("nhap dia chi: ");fflush(stdin);gets(SinhVien->diachi);
printf("nhap diem toan: ");scanf("%f",&SinhVien->toan);
printf("nhap diem van: ");scanf("%f",&SinhVien->van);
printf("nhap diem anh: ");scanf("%f",&SinhVien->anh);
printf("nhap ngay sinh: ");scanf("%d %d %d",SinhVien->NgaySinh.ngay,SinhVien->NgaySinh.thang,SinhVien->NgaySinh.nam);
}
void xuat(sv *SinhVien){
printf("ten: %s",SinhVien->name);
printf("dia chi: %s",SinhVien->diachi);
printf("diem toan: %f",SinhVien->toan);
printf("diem van: %f",SinhVien->van);
printf("diem anh: %f",SinhVien->anh);
printf("ngay sinh: %d/%d/%d",SinhVien->NgaySinh.ngay,SinhVien->NgaySinh.thang,SinhVien->NgaySinh.nam);
}
int main(){
sv *SinhVien;
int n;
printf("nhap so sinh vien: ");
scanf("%d",&n);
SinhVien=(sv*)malloc(n*sizeof(sv));
for (int i = 0; i < n; i++)
{
printf("\nnhap thong tin sinh vien thu %d\n",i+1);
nhap(SinhVien);
}
for (int i = 0; i < n; i++)
{
printf("\nthong tin sinh vien thu %d\n",i+1);
xuat(SinhVien);
}
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?