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

Đề tài: Bài tập cấu trúc trong lập trình C, sửa lỗi như thế nào?

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    Tứ xứ trên đất sài thành
    Bài viết
    60

    Mặc định Bài tập cấu trúc trong lập trình C, sửa lỗi như thế nào?

    Đây là code:
    Code:
    #include<stdio.h>
    #include<conio.h>
    
    typedef struct
    {
       char ho[8];
       char lot[8];
       char ten[8];
    }hoten;
    typedef struct
    {
       char xa[20];
       char huyen[20];
       char tinh[20];
    }que;
    typedef struct
    {
       float toan;
       float ly;
       float hoa;
    }diem;
    typedef struct
    {
       hoten a;
       que b;
       char tr[30];
       unsigned tuoi;
       unsigned int sbd;
       diem c;
    }thisinh;
    void xuat(thisinh *,unsigned,int);
    void main()
    {
       clrscr();
       thisinh ts[10];//*thish;
       int i,n;
       unsigned sbd;
       printf("Tong danh sach thi sinh la: ");
       scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    			printf("thi sinh %d:\n",i+1);
       			printf("Ho ten: ");
    			scanf("%s %s %s",ts[i].a.ho,ts[i].a.lot,ts[i].a.ten);
       			printf("Que quan: ");
    			scanf("%s %s %s",ts[i].b.xa,ts[i].b.huyen,ts[i].b.tinh);
       			printf("Truong: ");
    			gets(ts[i].tr);
       			printf("Tuoi: ");
    			scanf("%u",ts[i].tuoi);
       			printf("So bao danh: ");
    			scanf("%u",ts[i].sbd);
       			printf("Diem thi (gom 3 mon TOAN-LY-HOA): ");
    			scanf("%f%f%f",ts[i].c.toan,ts[i].c.ly,ts[i].c.hoa);
             }
       printf("Ban muon tim thong tin thi sinh nao thi nhap SBD vao :");
       scanf("%u",&sbd);
       xuat(ts,sbd,n);
       getch();
    }
    void xuat(thisinh *ts,unsigned sbd,int n)
    {
       int i,k=0;
       for(i=0;i<n;i++)
    	if((ts+i)->sbd==sbd)
          {
          	k++;
    			printf("Thi sinh: %s %s %s\n",(ts+i)->a.ho,(ts+i)->a.lot,(ts+i)->a.ten);
    		printf("Truong: %s\n",(ts+i)->tr);
    		printf("So bao danh: %u\n",(ts+i)->sbd);
    		printf("Tuoi: %u\n",(ts+i)->tuoi);
    		printf("Que quan: %s,%s,%s\n",(ts+i)->b.xa,(ts+i)->b.huyen,(ts+i)->b.tinh);
          }
       if(!k)
       {
    	if(k>=2)
    		printf("co %d trung so bao danh",k);
       }
       else
    	printf("Khong co thi sinh nao co SBD nay");
    }
    Không hiểu sao tư nó chạy nữa chừng rồi thoát ra luôn. híc... mong mấy anh chỉ dùng chổ sai. thank you!!!

    Càng Học Càng Ngu!!!Kiến thức thì vô tận con người thì vô biên thời gian thì vô đối????...

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    AYS 107
    Bài viết
    41

    Mình mới sửa qua để chương trình tạm gọi là chạy thôi. Bạn có mấy lỗi thế này cần lưu ý nhé:
    +) Khi dùng hàm scanf để nhập dữ liệu phải truyền vào địa chỉ của biến lưu giá trị đó. Ví dụ có mấy chỗ phải là:
    C Code:
    1. scanf("%u",&ts[i].sbd);
    chứ không phải
    C Code:
    1. scanf("%u",ts[i].sbd);

    +) Nữa là khi dùng hàm sau khi dùng hàm scanf bạn phải xóa bộ đệm bằng hàm fflush() nếu không sẽ gây sai lêch cho quá trình nhập dữ liệu.

    Bạn sửa thêm những chức năng bạn muốn nhé!!

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. typedef struct hoten
    5.     {
    6.         char ho[8];
    7.         char lot[8];
    8.         char ten[8];
    9.     }hoten;
    10.  
    11. typedef struct que
    12.     {
    13.         char xa[20];
    14.         char huyen[20];
    15.         char tinh[20];
    16.     }que;
    17.  
    18. typedef struct diem
    19.     {
    20.         float toan;
    21.         float ly;
    22.         float hoa;
    23.     }diem;
    24.  
    25. typedef struct thisinh
    26.     {
    27.         hoten a;
    28.         que b;
    29.         diem c;
    30.         char tr[30];
    31.         unsigned tuoi;
    32.         unsigned int sbd;
    33.     }thisinh;
    34.  
    35. void xuat(thisinh *,unsigned,int);
    36.  
    37. int main()
    38. {
    39.     thisinh ts[100];
    40.     int i,n;
    41.     unsigned int sbd;
    42.     printf("Tong danh sach thi sinh la: ");
    43.     scanf("%d",&n);
    44.     for (i=0;i<n;i++)
    45.         {
    46.             printf("thi sinh %d:\n",i+1);
    47.             printf("Ho ten: ");
    48.             scanf("%s %s %s",ts[i].a.ho,ts[i].a.lot,ts[i].a.ten);
    49.             fflush(stdin);
    50.             printf("Que quan: ");
    51.             scanf("%s %s %s",ts[i].b.xa,ts[i].b.huyen,ts[i].b.tinh);
    52.             fflush(stdin);
    53.             printf("Truong: ");
    54.             gets(ts[i].tr);
    55.             printf("Tuoi: ");
    56.             scanf("%u",&ts[i].tuoi); //loi
    57.             fflush(stdin);
    58.             printf("So bao danh: ");
    59.             scanf("%u",&ts[i].sbd);  //loi
    60.             fflush(stdin);
    61.             printf("Diem thi (gom 3 mon TOAN-LY-HOA): ");
    62.             scanf("%f%f%f",&ts[i].c.toan,&ts[i].c.ly,&ts[i].c.hoa);
    63.             fflush(stdin);
    64.         }
    65.     printf("Ban muon tim thong tin thi sinh nao thi nhap SBD vao :");
    66.     scanf("%d",&sbd);
    67.     fflush(stdin);
    68.     xuat(ts,sbd,n);
    69.     getch();
    70.     return 0;
    71. }
    72. void xuat(thisinh *ts,unsigned int sbd,int n)
    73. {
    74.     int i,k=0;
    75.     for (i=0;i<n;i++)
    76.         if ((ts+i)->sbd==sbd)
    77.             {
    78.                 k++;
    79.                 printf("Thi sinh: %s %s %s\n",(ts+i)->a.ho,(ts+i)->a.lot,(ts+i)->a.ten);
    80.                 printf("Truong: %s\n",(ts+i)->tr);
    81.                 printf("So bao danh: %u\n",(ts+i)->sbd);
    82.                 printf("Tuoi: %u\n",(ts+i)->tuoi);
    83.                 printf("Que quan: %s,%s,%s\n",(ts+i)->b.xa,(ts+i)->b.huyen,(ts+i)->b.tinh);
    84.             }
    85.     if (!k)
    86.         {
    87.             if (k>=2)
    88.                 printf("co %d trung so bao danh",k);
    89.         }
    90.     else
    91.         printf("Khong co thi sinh nao co SBD nay");
    92. }
    I don't wanna waste another day

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    Tứ xứ trên đất sài thành
    Bài viết
    60

    cảm ơn developer nhiêu nha. bữa giờ bí mà chẳng biết hỏi ai. thank you!!!

    Càng Học Càng Ngu!!!Kiến thức thì vô tận con người thì vô biên thời gian thì vô đối????...

  4. #4
    Ngày gia nhập
    03 2009
    Nơi ở
    Ho Chi Minh City, Vietnam, Vietnam
    Bài viết
    58

    Bác code lại em thảm khảo với.

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

    Hay nhỉ, mấy hôm nay trên diễn đàn toàn thấy người hỏi bài này
    Dân thường sống đẹp đè bẹp dân chơi.
    Hi [you]

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    11

    Mặc định Bài tập cấu trúc trong lập trình C, sửa lỗi như thế nào?

    sai phần cơ bản quá

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

  1. thắc mắc về cách truyền 1 cấu trúc vào trong cây nhị phân
    Gửi bởi racingboyc4 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 19-05-2011, 03:00 PM
  2. Thắc mắc về cách khai báo thông tin của 1 nút trong cấu trúc cây nhị phân tìm kiếm!
    Gửi bởi ntbao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 16-04-2011, 09:28 AM
  3. Kỹ thuật C++ Kiểu cấu trúc động trong C++ như thế nào?
    Gửi bởi mrtyoffline 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: 14-10-2010, 10:09 PM
  4. lập trình cấu trúc trong winform c# thế nào
    Gửi bởi thanhtung_n4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 27-07-2010, 04:15 PM
  5. những thắc mắc về cấu trúc lệnh trong class
    Gửi bởi hardlovebee21 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: 04-04-2009, 11:07 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