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

Đề tài: Bài tập về "Structer"

  1. #1
    No Avatar
    tuananh2006hp Khách

    Mặc định Bài tập về "Structer"

    Mọi người giúp tớ cái này nhe.khi chay chương trình thấy nó không báo lỗi gì cả.Nhưng khi chạy thì kết quả không như mong đợi
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4. #include <malloc.h>
    5.  
    6. struct Mybook
    7. {
    8.     char tensach[20];
    9.    char tentacgia[20];
    10.    float giatien;
    11. } ;
    12. //khai bao nguyen mau ham
    13.  
    14. void hienthi(struct Mybook *tuananh,int n) ;
    15.  
    16. main()
    17. {
    18.     int i;
    19.    int n;
    20.     struct Mybook *tuananh;
    21.    printf("\t\t\tCHUONG TRINH QUAN LY SACH");
    22.    printf("\n\n\nBan muon nhap bao nhieu quyen sach:");
    23.    scanf("%d",&n);
    24.    fflush(stdin);
    25.    tuananh=(int*)malloc(n*sizeof(int));
    26.    for(i=0;i<n;i++)
    27.    {
    28.     printf("\n\tQuyen %d:",i+1);
    29.       printf("Nhap ten sach:");
    30.     gets(tuananh[i].tensach);
    31.       fflush(stdin);
    32.         printf("\n\t\tNhap ten tac gia:");
    33.     gets(tuananh[i].tentacgia);
    34.       fflush(stdin);
    35.     printf("\n\t\tNhap gia tien:");
    36.     scanf("%f",&tuananh[i].giatien);
    37.       fflush(stdin);
    38.    }
    39.    hienthi(tuananh,n);
    40.    for (i=0;i<n;i++)
    41.    {
    42.  
    43.       printf("\t%d",tuananh+i);
    44.    }
    45.  
    46.    getch();
    47.    return 0;
    48. }
    49. //dinh nghie ham
    50. void hienthi(struct Mybook *tuananh,int n)
    51. {
    52.     int i;
    53.     printf("\t\nThong tin ve sach:");
    54.    for(i=0;i<n;i++)
    55.    {
    56.     printf("\n\nQuyen %d:",i+1);
    57.     printf("\n\tTen Sach:%s",tuananh[i].tensach);
    58.     printf("\n\tTen Tac Gia:%s",tuananh[i].tentacgia);
    59.     printf("\n\tGia Tien:%f",tuananh[i].giatien);
    60.    }
    61.    return;
    62. }

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    cái cục này để làm gì
    Code:
    for (i=0;i<n;i++)
    {
    
    printf("\t%d",tuananh+i);
    }
    None!

  3. #3
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    10

    Code:
     tuananh=(int*)malloc(n*sizeof(int));
    Kiểu dữ liệu của tuananh kô phải là int mà là Mybook.
    ---> Sửa thành :
    Code:
    tuananh=(Mybook*)malloc(n*sizeof(Mybook));

    Code:
     for(i=0;i<n;i++)
      {
       	printf("\n\tQuyen %d:",i+1);
          printf("Nhap ten sach:");
       	gets(tuananh[i].tensach);
          fflush(stdin);
      		printf("\n\t\tNhap ten tac gia:");
       	gets(tuananh[i].tentacgia);
          fflush(stdin);
       	printf("\n\t\tNhap gia tien:");
       	scanf("%f",&tuananh[i].giatien); //Kô làm theo cách này.
    Lí do here:
    Có thể sử dụng phép toán lấy địa chỉ đơi với thành phần cấu trúc để nhập số liệu trực tiếp vào thành phần cấu trúc. Ví dụ có thể viết:
    scanf ("%d", &tuananh[i].giatien);
    Nhưng đối với các thành phần không nguyên, việc làm trên có thể dẫn đến treo máy. Vì vậy trước tiên nên nhập số liệu vào một biến trung gian, sau đó mới gán cho thành phần của cấu trúc. Cách làm như sau:
    Code:
    scanf("%f", &tien); // Nhớ khai biến tien ở phía trên :) 
    tuananh[i].giatien=tien;
    Code:
    hienthi(tuananh,n);
    for (i=0;i<n;i++)
       {
    
          printf("\t%d",tuananh+i);
       }
    Chỗ này chả để làm gì cả... Trong hàm hienthi(tuananh,n) của bạn đã có lệnh in ra rồi.

    Đấy là các lỗi mà mình thấy, bạn tự hoàn chỉnh nó nha.
    If...

  4. #4
    No Avatar
    tuananh2006hp Khách

    Mặc định cảm ơn!

    Bây giờ thì mình đã hiểu rồi.Cam ơn mọi người nhé!!!

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

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 1
    Bài viết cuối: 29-09-2012, 11:29 AM
  2. Lỗi"error C2275: 'T' : illegal use of this type as an expression" khi dùng "list<T>::iterator it"
    Gửi bởi doicanhden trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 19-01-2012, 01:59 AM
  3. Trả lời: 1
    Bài viết cuối: 01-12-2011, 07:32 PM
  4. Trả lời: 4
    Bài viết cuối: 14-09-2011, 11:01 PM
  5. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM

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