Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Tạo hàm nhập thông tin học sinh

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    25

    Mặc định Tạo hàm nhập thông tin học sinh

    giả sử mình có 1 danh sách n học sinh và mình muốn nhập thông tin về học sinh đó qua việc xây dựng trước các hàm để nhập thông tin như: mã học sinh, họ tên, điểm tb...

    mình có viết 1 hàm để nhập mã học sinh như sau:

    Code:
    int nhap_mhs( int *mhs)
    {
         int a;
         printf("\nMa hoc sinh: ");
         scanf("%d",&a);
         while(a<0)
         {
         printf("Hay nhap lai ma HS: ");
         scanf("%d",&a);
         };
         mhs=&a;
         return *mhs;
    }
    rồi ở hàm main mình gọi hàm nhp_mhs ra nhưng hàm không đưa ra mhs mà mình đã nhập. g/sử:
    Code:
    nhap_mhs(&mhs[1]);
    cho mình hỏi mình sai ở đâu vậy? (mình nghĩ là ở cách mình sử dụng con trỏ). mọi người sửa giúp mình vs. Thank's
    p/s: bài này mình dùng cấu trúc để nhập, liệu có ảnh hưởng j không nhỉ? :3

  2. #2
    Ngày gia nhập
    03 2011
    Bài viết
    7

    Mặc định Lỗi hàm nhập mã học sinh

    Ở đây là hàm có giá trị trả về return, nên ở hàm main bạn khai báo là "int nhap_mhs" thử coi

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    25

    Trích dẫn Nguyên bản được gửi bởi tethien2010 Xem bài viết
    Ở đây là hàm có giá trị trả về return, nên ở hàm main bạn khai báo là "int nhap_mhs" thử coi
    là sao hả bạn? m không hiểu.

  4. #4
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    Tớ đã sửa cho cậu hoàn chỉnh rồi đấy. Cậu xem lỗi trong code tớ chú thích
    C Code:
    1. void nhap_mhs( int *mhs) ///// dùng mhs lưu giá trị rồi thì ko cần return lại làm gì
    2. {
    3.      int a;
    4.      printf("\nMa hoc sinh: ");
    5.      scanf("%d",&a);
    6.      while(a<0)
    7.      {
    8.         printf("Hay nhap lai ma HS: ");
    9.         scanf("%d",&a);
    10.      };
    11.      mhs=&a;
    12.      //return *mhs;  lỗi, do kiểu trả về là int* chứ không phải là int
    13. }
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    25

    thank's nha. m làm được chỗ đó rồi, h lại có chỗ khác đây @@. giúp m nốt với.
    M có làm thêm 1 hàm này nữa
    Code:
    void nhap_dtk(float *dtb,int *khk,float *dhk,char *hk,float *dtk)
    {
          printf("\nDiem Trung Binh: ");
          scanf("%f",&*dtb);
          while(*dtb<0||*dtb>10)
          {
          printf("Hay nhap lai diem TB: ");
          scanf("%f",&*dtb);
          }
          printf("\n1-Kem  2-Yeu  3-Trung Binh  4-Kha  5-Tot");
          printf("\nHanh kiem: ");
          scanf("%d",&*khk);
          while(*khk<1||*khk>5)
          {
          printf("\n1-Kem  2-Yeu  3-Trung Binh  4-Kha  5-Tot");
          printf("\nHay chon lai hanh kiem: ");
          scanf("%d",&*khk);
          }
          switch(*khk)
          {
                           
                           case 1: *dhk=-0.5;
                                   hk="Kem";
                                   break;
                           case 2: *dhk=-0.25;
                                   hk="Yeu";
                                   break;
                           case 3: *dhk=0;
                                   hk="TB";
                                   break;
                           case 4: *dhk=0.25;
                                   hk="Kha";
                                   break;
                           case 5: *dhk=0.5;
                                   hk="Tot";
                                   break;
         };
         *dtk=*dtb+*dhk;
    }
    g/sử mình gọi hàm như sau:
    Code:
    nhap_dtk(&a,&b,&c,d,&e);
    khi in ra màn hình thì giá trị của "d" không hiện là Yeu hay Kem hay..vv.. mà hiện là (null). cho mình hỏi tại sao vậy?

  6. #6
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    Mặc định Tạo hàm nhập thông tin học sinh

    Có 1 chỗ lưu ý với bạn.
    C Code:
    1. scanf("%f",dtb); // thay vì scanf("%f",&*dtb);
    Nếu muốn hiểu thêm về chuỗi, bạn hãy tìm trong 4rum rất nhiều. Ví dụ dưới đây là đủ để bạn làm bài toán này
    C Code:
    1. void nhapChuoi(char *s)
    2. {
    3.     strcpy(s,"Yeu");
    4. }
    5. void main()
    6. {
    7.     char *s = new char[10]; //char s[10];
    8.     nhapChuoi(s);
    9.     puts(s);
    10. }
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    25

    Code:
    scanf("%f",dtb); // thay vì scanf("%f",&*dtb);
    kết quả trả về của 2 kiểu viết này có gì khác nhau không bạn? m viết "&*" và test thì không thấy có j sai cả.

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    552

    "Test" không thấy gì sai thì cũng tự trả lời dc câu hỏi của bản thân rồi chứ nhỉ.
    Thấy ko "yên tâm" thì cứ test tiếp.
    Test mệt nghỉ rồi thì rút ra kết luận.
    Um Mani Padme Hum...!!

  9. #9
    Ngày gia nhập
    10 2011
    Bài viết
    25

    thank bạn nhìu nha. mình làm được hoàn tất bài đó rồi. thank's

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

  1. Dịch vụ vệ sinh Hồ Bơi chuyên nghiệp nhất Hà Nội - Vệ sinh Hoàn Mỹ
    Gửi bởi trung__123 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 17-10-2013, 11:17 PM
  2. Borland C++ Lỗi Không nhập đủ n học sinh trong bài quản lý học sinh
    Gửi bởi danghieuht trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 30-09-2013, 11:13 PM
  3. Mẹo vệ sinh nhà cữa 1 cách khoa học nhất - VỆ sinh Hoàn Mỹ
    Gửi bởi trung__123 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 21-08-2013, 10:41 PM
  4. Bài tập C nhập vào tên sinh viên gồm.và sắp xếp tên sinh viên tăng dần theo danh sách đả nhập
    Gửi bởi nghiapro2589 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 26-05-2013, 08:23 AM
  5. Quản lí sinh viên bằng stack dùng danh sách liên kết. Làm sao để nhập nhiều sinh viên?
    Gửi bởi hoainamken trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 24-08-2011, 10:34 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