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

Đề tài: Vd struct này sai ở đâu

  1. #1
    Ngày gia nhập
    12 2011
    Nơi ở
    Hồ Chí Minh
    Bài viết
    2

    Mặc định Vd struct này sai ở đâu

    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. struct sinhvien
    5.        {
    6.        char ten[30];
    7.        int namsinh;    
    8.        }*thongtin;
    9.  
    10. void nhap(sinhvien *thongtin, int soluong)
    11.      {
    12.      for (int i=0; i<soluong; i++)
    13.          {
    14.          cout << "Sinh vien " << i+1 << ": "<< endl;
    15.          cout << "Ten: " ;
    16.          cin.getline(thongtin[i].ten, 30);
    17.          cout << "Nam sinh: " ;
    18.          cin >> thongtin[i].namsinh;
    19.          cout << endl;
    20.          }
    21.      }
    22.      
    23. void xuat(sinhvien *thongtin, int soluong)
    24.      {
    25.      for (int i=0; i<soluong; i++)
    26.          {
    27.          cout << "Ten: " << thongtin[i].ten << endl;
    28.          cout << "nam sinh: " << thongtin[i].namsinh << endl;
    29.          }              
    30.      }
    31.  
    32. int main()
    33.     {
    34.     int soluong;
    35.     thongtin = new sinhvien [soluong];
    36.     cout << "So luong sinh vien ban muon nhap: ";
    37.     cin >> soluong;
    38.     nhap(thongtin, soluong);
    39.     xuat(thongtin, soluong);
    40.     system("pause");
    41.     return 0;    
    42.     }
    1.Các bác xem dùm xem khi chạy chương trình nó không cho nhập phần "tên".
    Theo em hiểu thì mình cần cấp bộ nhớ cho phần nhập tên nhưng không biết phải cấp thế nào cho đúng.

    2.Khi em đọc sách có ví dụ về typedefstruct :
    C++ Code:
    1. typedef struct
    2.         {
    3.         int day;
    4.         int month;
    5.         int year;
    6.         }date;
    7. typedef struct
    8.         {
    9.         char name[30];
    10.         date birthday;
    11.         char role[20];
    12.         float salary;      
    13.         }employee;
    14.  
    15. struct date
    16.         {
    17.         int day;
    18.         int month;
    19.         int year;
    20.         };
    21. struct employee
    22.         {
    23.         char name[30];
    24.         date birthday;
    25.         char role[20];
    26.         float salary;      
    27.         };

    em đã chạy thử cả 2 không thấy có gì khác nhau các bác giải thích dùm em sự khác nhau giữa 2 ví dụ với.

    3.Cùng ví dụ 1 em viết chương trình tính điểm lớn nhất và nhỏ nhất của các sinh viên nhưng khi mình nhập vào trong đó có ít nhất 2 sinh viên cùng có điểm lớn nhất (nhỏ nhất) khi xuất ra chỉ ra 1 sinh viên có số diểm LN NN.
    Các bác bảo em làm thế nào để xuất ra tất cà sinh viên có cùng số điểm LN NN.
    Đã được chỉnh sửa lần cuối bởi beautifulsoul84hung : 23-12-2011 lúc 11:58 PM. Lý do: thêm tag cho code

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

    Trích dẫn Nguyên bản được gửi bởi megadracula Xem bài viết
    #include <iostream>

    void nhap(sinhvien *thongtin, int soluong)
    {
    for (int i=0; i<soluong; i++)
    {
    cout << "Sinh vien " << i+1 << ": "<< endl;
    cout << "Ten: " ;
    cin.getline(thongtin[i].ten, 30);
    cout << "Nam sinh: " ;
    cin >> thongtin[i].namsinh;
    cout << endl;
    }
    }

    1.Các bác xem dùm xem khi chạy chương trình nó không cho nhập phần "tên".
    Theo em hiểu thì mình cần cấp bộ nhớ cho phần nhập tên nhưng không biết phải cấp thế nào cho đúng.
    Trong hàm nhập thông tin sinh viên đó trước khi gọi cin.getline() , bạn nên gọi hàm cin.ignore(); có tác dụng lùa hết ký tự trong bộ nhớ đệm ra khỏi luồng nhập thì sẽ nhập "tên" được bình thường.

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

    3.Cùng ví dụ 1 em viết chương trình tính điểm lớn nhất và nhỏ nhất của các sinh viên nhưng khi mình nhập vào trong đó có ít nhất 2 sinh viên cùng có điểm lớn nhất (nhỏ nhất) khi xuất ra chỉ ra 1 sinh viên có số diểm LN NN.
    Các bác bảo em làm thế nào để xuất ra tất cà sinh viên có cùng số điểm LN NN.
    Đây là điều hiển nhiên
    Khi bạn tìm max hay min gì đấy bạn sẽ chỉ trả về Đúng 1 phần tử (vị trí) có giá trị "không thể lớn hơn/nhỏ hơn"
    Vậy còn trường hợp "nhièu max/min = nhau" Bạn sẽ phải cho "luộc" lại mảng xem có "em nào" = như vậy nữa thì "xúc"
    - À nếu cái mảng bạn vì chuyện gì đấy, trước khi tìm CÁC(chứ ko phải tìm 1) phàn tử max/min mà đã được sắp xếp thì chỉ việc cho chạy từ đầu mảng, hoặc cuối mảng. chạy cho đến khi nào giá trị phần tử bị thay đổi thì tức là hoàn tất việc "xúc" các phần tử max/min
    Um Mani Padme Hum...!!

  4. #4
    Ngày gia nhập
    12 2011
    Nơi ở
    Hồ Chí Minh
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi clchicken Xem bài viết
    Đây là điều hiển nhiên
    Khi bạn tìm max hay min gì đấy bạn sẽ chỉ trả về Đúng 1 phần tử (vị trí) có giá trị "không thể lớn hơn/nhỏ hơn"
    Vậy còn trường hợp "nhièu max/min = nhau" Bạn sẽ phải cho "luộc" lại mảng xem có "em nào" = như vậy nữa thì "xúc"
    - À nếu cái mảng bạn vì chuyện gì đấy, trước khi tìm CÁC(chứ ko phải tìm 1) phàn tử max/min mà đã được sắp xếp thì chỉ việc cho chạy từ đầu mảng, hoặc cuối mảng. chạy cho đến khi nào giá trị phần tử bị thay đổi thì tức là hoàn tất việc "xúc" các phần tử max/min
    À ra vậy. Theo ý của bạn là mình thêm continue để bỏ qua các số max/min cho đến khi chạy xong vòng lặp phải ko.

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

    Ko phải thế. Vì khi đang trong giai đoạn tìm max(hoặc min) thì vẫn chưa hoàn tất, vì chưa duyệt hết mảng. Cho nên max chưa biết.
    Mà max chưa biết thì chưa thể tìm tất cả phần tử = max dc
    Phải tìm max xong. Rồi cho duyệt lại xem thằng ku nào = max thì cho ra output (màn hình hoặc 1 mảng lưu vị trí của chúng , hoặc là đếm số lượng... vân vân) mới ổn

    Trường hợp đã dc sắp thì quá khỏe . Chạy lúc nào mà phần tử mang giá trị khác thì byebye vòng lặp đó bạn ^^ hehehehe
    Um Mani Padme Hum...!!

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

  1. Gửi struct thông qua socket có khác nhau giữa gửi từng field và gửi cả struct?
    Gửi bởi bptvip_pro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 12-05-2013, 02:35 AM
  2. Bài tập C++ làm sao truy xuất biến của struct lồng trong struct
    Gửi bởi quangnam.tamky 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: 10-04-2013, 05:22 PM
  3. Lập trình C++ Giúp đỡ về điểm khác nhau giữa struct và typedef struct
    Gửi bởi huydang2410 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 27-02-2013, 10:30 AM
  4. Khác nhau giữa struct trong c và struct trong c++
    Gửi bởi nhutlv01 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: 17-02-2012, 09:12 AM
  5. kiểu struct trên C++. CHo em hỏi rõ về kiểu struct???
    Gửi bởi nhonx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 13-01-2010, 08:39 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