Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: Bài tập C | Nhập xuất sinh viên, lỗi không cho nhập điểm trung bình???

  1. #1
    Ngày gia nhập
    10 2008
    Nơi ở
    Vinh Long
    Bài viết
    8

    Mặc định Bài tập C | Nhập xuất sinh viên, lỗi không cho nhập điểm trung bình???

    Có thể giúp mình sửa lỗi bài này không,mình không hiểu sao chương trình không cho nhập điểm trung bình

    PHP Code:
    #include <stdio.h>

    //Khai bao cau truc date
    typedef struct date
    {
            
    int ngay;
            
    int thang;
            
    int nam;
    }
    date;

    //Khai bao cau truc sinh-vien
    typedef struct sinh_vien
    {
        
    //ho cua sinh vien toi da 10 ki tu
        
    char ho[10];
        
    //ten cua sinh vien toi da 15 ki tu
        
    char ten[15];
        
    //ngay sinh cua sinh vien
        
    date ngay_sinh;
        
    // gioi tinh cua sinh vien qui dinh 0 - nu; 1 - nam
        
    int gioi_tinh;
        
    //diem trung binh cua sinh vien
        
    float dtb;
    }
    sinh_vien;

    //Khai bao cac mau ham
    void nhap_date(dated);

    void nhap_sinh_vien(sinh_viensv);


    //Cai dat cac mau ham
    void nhap_date(date*d)
    {

        
    printf("Nhap ngay: "); scanf("%d", &d->ngay);
        
    printf("Nhap thang: "); scanf("%d", &d->thang);
        
    printf("Nhap nam: "); scanf("%d", &d->nam);
    }



    void nhap_sinh_vien(sinh_viensv)
    {
        
    // Nhap ho
        
    printf("Nhap ho: ");scanf("%s"sv->ho);

        
    // Nhap ten
        
    printf("Nhap ten: ");scanf("%s"sv->ten);

        
    // Nhap ngay sinh
        
    nhap_date(&(sv->ngay_sinh));

        
    // Nhap gioi tinh
        
    printf("Nhap gioi tinh:");scanf("%d", &sv->gioi_tinh);

        
    //diem trung binh cua sinh vien
        
    printf("Nhap diem trung binh:");scanf("%f", &sv->dtb);
    }
    void main()
    {

        
    sinh_vien s1;
        
    nhap_sinh_vien(&s1);
        
    sinh_vien s2;
        
    nhap_sinh_vien(&s2);



  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    Hà Nội
    Bài viết
    74

    bạn đặt tên của struct và gán tên cho biến cấu trúc đó giống nhau;phải sưa lại vd là:
    Code:
    typedef struct sinh_vien_struct
    {
        //ho cua sinh vien toi da 10 ki tu
        char ho[10];
        //ten cua sinh vien toi da 15 ki tu
        char ten[15];
        //ngay sinh cua sinh vien
        date ngay_sinh;
        // gioi tinh cua sinh vien qui dinh 0 - nu; 1 - nam
        int gioi_tinh;
        //diem trung binh cua sinh vien
        float dtb;
    }sinh_vien;

    http://ebook.here.vn
    trang web cung cấp đề thi,tài liệu ôn thi đại học.

  3. #3
    Ngày gia nhập
    10 2008
    Nơi ở
    Vinh Long
    Bài viết
    8

    bạn xem lại giúp mình,mình đã thêm vào struct giống như bạn nói nhưng chương trình vẫn không cho nhập vào điểm trung bình

  4. #4
    Ngày gia nhập
    11 2008
    Nơi ở
    Hà Nội
    Bài viết
    70

    THử thế này coi bạn:
    C Code:
    1. int dtb;
    2. scanf("%f", &dtb);
    3. sv->dtb=dtb;
    Dân thường sống đẹp đè bẹp dân chơi.
    Hi [you]

  5. #5
    Ngày gia nhập
    10 2008
    Nơi ở
    Vinh Long
    Bài viết
    8

    cám ơn bạn zodjac nhé,chương trình mình chạy thấy tốt rồi.

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    Hà Nội
    Bài viết
    74

    Mặc định Bài tập C | Nhập xuất sinh viên, lỗi không cho nhập điểm trung bình???

    ơ,sao mình chạy trên Dev-C++ vẫn được mà.về lý thuyết là
    Code:
    int dtb;
    scanf("%f", &dtb);
    sv->dtb=dtb;

    Code:
    scanf("%f",&sv->dtb
    là giống nhau mà.

    http://ebook.here.vn
    trang web cung cấp đề thi,tài liệu ôn thi đại học.

  7. #7
    Ngày gia nhập
    10 2008
    Nơi ở
    Vinh Long
    Bài viết
    8

    mình chạy trên Turbo C và Borland C bạn ạ.nhưng dù sao cũng cám ơn bạn.mình còn một đoạn code cũng về sinh viên nhưng nhập vào danh sách,mình vẫn chưa sửa lỗi được.

    PHP Code:
    #include <stdio.h>

    //Khai bao cau truc date
    typedef struct date
    {
        
    int ngay;
        
    int thang;
        
    int nam;
    }
    date;

    //Khai bao cau truc sinh-vien
    typedef struct sinh_vien
    {
        
    //ho cua sinh vien toi da 10 ki tu
        
    char ho[10];
        
    //ten cua sinh vien toi da 15 ki tu
        
    char ten[15];
        
    //ngay sinh cua sinh vien
        
    date ngay_sinh;
        
    // gioi tinh cua sinh vien qui dinh 0 - nu; 1 - nam
        
    int gioi_tinh;
        
    //diem trung binh cua sinh vien
        
    float dtb;
    }
    sinh_vien;

    //Khai bao cau truc danh sach sinh vien
    typedef struct danh_sach
    {
        
    char TenLop[50];
        
    int siso;
        
    sinh_vien sv[5];
    }
    danh_sach;

    //Khai bao cac mau ham
    void nhap_date(dated);
    void xuat_date(dated);
    void nhap_sinh_vien(sinh_viensv);
    void xuat_sinh_vien(sinh_viensv);
    void nhap_ds_sv(danh_sachds);
    void xuat_ds_sv(danh_sachds);

    //Cai dat cac mau ham
    void nhap_date(dated)
    {
        
    //scanf("%d%d%d", &d->ngay, &d->thang, &d->nam);
        
    printf("Nhap ngay: "); scanf("%d", &d->ngay);
        
    printf("Nhap thang: "); scanf("%d", &d->thang);
        
    printf("Nhap nam: "); scanf("%d", &d->nam);
    }
    void xuat_date(dated)
    {
        
    printf("\n%d-%d-%d"d->ngayd->thangd->nam);
    }
    void nhap_sinh_vien(sinh_viensv)
    {
        
    // Nhap ho
        
    printf("Nhap ho: ");scanf("%s"sv->ho);
        
    // Nhap ten
        
    printf("Nhap ten: ");scanf("%s"sv->ten);
        
    // Nhap ngay sinh
        
    nhap_date(&(sv->ngay_sinh));
        
    // Nhap gioi tinh
        
    printf("Nhap gioi tinh:");scanf("%d", &sv->gioi_tinh);
        
    //diem trung binh cua sinh vien
        
    float dtb;
        
    printf("Nhap diem trung binh:");
        
    scanf("%f", &dtb);
        
    sv->dtb=dtb;
    }
    void xuat_sinh_vien(sinh_viensv)
    {
        
    printf("\nho: %s"sv->ho);
        
    printf("\nten: %s"sv->ten);
        
    xuat_date(&(sv->ngay_sinh));
        
    printf("gioi tinh:%d"sv->gioi_tinh);
        
    printf("diem trung binh:%.2f"sv->dtb);
    }
    void nhap_ds_sv(danh_sachds)
    {
        
    // Nhap ten lop
        
    printf("\n Nhap ten lop: ");
        
    scanf("%s"ds->TenLop);
        
    // Nhap si so lop
        
    printf("\n Nhap si so: ");
        
    scanf("%d"ds->siso);
        for(
    int i=0;i<ds->siso;i++)
            
    nhap_sinh_vien(&(sv->sinh_vien));
    }
    void xuat_ds_sv(danh_sachds)
    {
        for(
    int i=0;i<ds->siso;i++)
            
    xuat_sinh_vien(sv[i]->sinh_vien);
    }
    void main()
    {
        
    danh_sachds;
        
    nhap_ds_sv(&ds);
        
    xuat_ds_sv(&ds);


  8. #8
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    26

    Trích dẫn Nguyên bản được gửi bởi zodjac1990 Xem bài viết
    THử thế này coi bạn:
    C Code:
    1. int dtb;
    2. scanf("%f", &dtb);
    3. sv->dtb=dtb;
    Phải là float dtb đúng ko bạn?
    Chạy trên Devc++ thì như code Phamdankhoi vẫn chạy ổn
    Còn trên turboC thì hổng được. Nhập xong giới tính là nó thoát lun. Mình alt+F5 xem lại thì nó thế này:
    " nhap dtb = scanf floating point formats not linked
    Abnormal program termination"
    Khi sửa giống Zodjac (là int dtb ấy) thì bị giống hệt luôn.
    cón sửa thành float dtb thì lại OK????????
    ko hiếu sao luôn ai giải thích giùm mình với???????
    Ko bít thì phải học, phải hỏi _ Bít thì nên chia sẻ cho người khác cùng bít
    Chia sẻ là cách học tốt nhất ^_^[j0y_k3y]0_0

  9. #9
    Ngày gia nhập
    10 2008
    Nơi ở
    Vinh Long
    Bài viết
    8

    có phải bạn trang khi khai báo dtb kiểu int,ở hàm scanf không đổi lại là %d đúng không, bạn thử sửa %f thành %d thử xem,chương trình sẽ chạy tốt,nhưng nếu để dtb để kiểu int thì mình không thể nhập điểm trung bình là 0.5 được.

  10. #10
    No Avatar
    Mr.Kjng Khách

    Theo mình thì khi làm trên struct thì bạn nên chí ý.
    -Về việc nhập họ tên hay thông tìn gì đó thì bạn nên xóa bộ nhớ đệm
    C Code:
    1. fflush(stdin);
    -Còn nhập các thông số thì bạn nên gán nó với một biểu thức nào đó
    C Code:
    1. int diem;
    2. scanf("%d",&diem);
    3. sinhvien[i].diem=diem;

Các đề tài tương tự

  1. Bài tập C Bài tập tìm sinh viên có điểm trung bình lớn nhất trong danh sách sv và xuất ra!!!
    Gửi bởi anhtran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 27-11-2015, 09:10 AM
  2. Lập trình C++ Bài tập nhập xuất sinh viên
    Gửi bởi khachung_uit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 11
    Bài viết cuối: 21-11-2014, 06:13 PM
  3. Thắc mắc nhập xuất danh sách sinh viên trong C#
    Gửi bởi blindknight47 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 21
    Bài viết cuối: 19-09-2011, 12:39 PM
  4. Bài tập C Nhập xuất sinh viên theo kiểu cấu trúc báo lỗi: The variable 'sv' is being used without being initialized
    Gửi bởi anhtran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 08-06-2011, 04:19 PM
  5. xử lí tập tin nhị phân để nhập xuất danh sách sinh viên trong lập trình C?
    Gửi bởi niteo4 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 22-01-2011, 01:55 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn