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

Đề tài: sử dụng struct trên C để quản lý, lỗi chạy có 1 lần rồi xuất luôn?

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    18

    Mặc định sử dụng struct trên C để quản lý, lỗi chạy có 1 lần rồi xuất luôn?

    mình muốn cho nó nhập lại cho đến khi nào ko nhập nữa (để trống) nhưng sao nó cho chạy có 1 lần hà rồi xuất luôn, các bạn coi giúp mình nhé

    C Code:
    1. #include<stdio.h>
    2. #define MAX 100
    3. typedef struct maytinh
    4. {
    5. char loai[15];
    6. char tenloai[15];
    7. char mauin[15];
    8. char nuocsx[15];
    9. float dongia;
    10. }MAYTINH;
    11.  
    12. MAYTINH danhsach[MAX];
    13. int numrecords = 0;
    14.  
    15. main()
    16. {
    17.  
    18. int kq=0, i;
    19. char loai[11];
    20. float dongia;
    21. //nhap du lieu
    22.  
    23.     do {
    24.     printf("\nloai may :");gets(loai);
    25.     if (strlen(loai)==0) kq = 1;
    26.     else
    27.    
    28. {
    29.     strcpy(danhsach[numrecords].loai, loai);
    30.     printf("Ten Loai :"); gets(danhsach[numrecords].tenloai);
    31.     printf("Mau in :"); gets(danhsach[numrecords].mauin);
    32.     printf("Nuoc san xuat :"); gets(danhsach[numrecords].nuocsx);
    33.     printf("Don gia :"); scanf("%f",&dongia);
    34.     danhsach[numrecords].dongia= dongia;
    35.      numrecords++;
    36.     }
    37.   } while (!kq);
    38. //in ra bang
    39. for(i=0;i<numrecords;i++)
    40. {
    41.     printf("\n");
    42. printf("+----+---------+------------+-----------+-----------+----------+\n");
    43. printf("|STT |   Loai  |  Ten Loai  |   Mau in  |  Nuoc SX  |  Don Gia |\n");
    44. printf("+----+---------+------------+-----------+-----------+----------+\n");
    45.  
    46. for(i=0;i<numrecords;i++)
    47. {
    48. printf("|%3d ", i+1);
    49. printf("|%5s    |%8s    |%7s    |%7s    |%8.0f  | ",danhsach[i].loai,danhsach[i].tenloai,danhsach[i].mauin,danhsach[i].nuocsx,danhsach[i].dongia);
    50. }
    51. printf("\n");
    52. printf("+----+---------+------------+-----------+-----------+----------+\n");
    53. }
    54. }

  2. #2
    Ngày gia nhập
    03 2008
    Nơi ở
    Hồ chí minh
    Bài viết
    134

    Mình đã sửa theo yêu cầu của bạn rồi đó:
    C Code:
    1. #include<stdio.h>
    2. #include<string.h>//bạn thiều thư viên này
    3. #define MAX 100
    4. typedef struct maytinh
    5. {
    6. char loai[15];
    7. char tenloai[15];
    8. char mauin[15];
    9. char nuocsx[15];
    10. float dongia;
    11. }MAYTINH;
    12.  
    13. MAYTINH danhsach[MAX];
    14. int numrecords = 0;
    15.  
    16. main()
    17. {
    18.  
    19. int kq=0, i;
    20. char loai[11];
    21. float dongia;
    22. //nhap du lieu
    23.  
    24.     do {
    25.     printf("\nloai may :");
    26.     fflush(stdin);/*lần nhập thứ hai,hàm gets bị trôi nên cuối cùng nó gán cho strlen(loai)=0 =>kq=1,nên thoát khỏi vòng lặp while và xuất luôn kết quả ra màn hình*/
    27.     gets(loai);
    28.     if (strlen(loai)==0) kq = 1;
    29.     else
    30.    
    31.     {
    32.     strcpy(danhsach[numrecords].loai, loai);
    33.     printf("Ten Loai :"); gets(danhsach[numrecords].tenloai);
    34.     printf("Mau in :"); gets(danhsach[numrecords].mauin);
    35.     printf("Nuoc san xuat :"); gets(danhsach[numrecords].nuocsx);
    36.     printf("Don gia :"); scanf("%f",&dongia);
    37.     danhsach[numrecords].dongia= dongia;
    38.      numrecords++;
    39.     }
    40.   } while(!kq);
    41. //in ra bang
    42. for(i=0;i<numrecords;i++)
    43. {
    44.     printf("\n");
    45. printf("+----+---------+------------+-----------+-----------+----------+\n");
    46. printf("|STT |   Loai  |  Ten Loai  |   Mau in  |  Nuoc SX  |  Don Gia |\n");
    47. printf("+----+---------+------------+-----------+-----------+----------+\n");
    48.  
    49. for(i=0;i<numrecords;i++)
    50. {
    51. printf("|%3d ", i+1);
    52. printf("|%5s    |%8s    |%7s    |%7s    |%8.0f  | ",danhsach[i].loai,danhsach[i].tenloai,danhsach[i].mauin,danhsach[i].nuocsx,danhsach[i].dongia);
    53. }
    54. printf("\n");
    55. printf("+----+---------+------------+-----------+-----------+----------+\n");
    56. }
    57. return 0;
    58. }

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    18

    Thanks you so much

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

  1. 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
  2. Trả lời: 1
    Bài viết cuối: 18-02-2013, 01:19 AM
  3. Xuất dữ liệu từ Table ra Excel lỗi khi chạy trên Localhost
    Gửi bởi anhsang trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 21-11-2012, 01:59 PM
  4. So sánh mã sách của struct trong C, lỗi chạy không đúng kết quả?
    Gửi bởi boymafia1993 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 14
    Bài viết cuối: 11-10-2012, 09:02 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