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

Đề tài: không hiểu While(!done)

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định không hiểu While(!done)

    Code:
    /* Bai tap 1_61 - Quan ly danh sach hoc sinh */
    #include <stdio.h>
    
    #define MAX 100
    
    typedef struct hocsinh {
      char hoten[35];
      char lop[7];
      float diemtoan, diemly, diemhoa;
    } HOCSINH;
    
    HOCSINH danhsach[MAX];
    int numrecords = 0;
    char filename[] = "DANHSACH.DAT";
    
    void main()
    {
      int done = 0, i;
      char hoten[35];
      float diem;
    
      do {
        printf("\nHo ten (trong de thoat) : ");
        gets(hoten);
        if (strlen(hoten) == 0)
          done = 1;
        else
        {
          strcpy(danhsach[numrecords].hoten, hoten);
          printf("\nLop : ");
          gets(danhsach[numrecords].lop);
          printf("\nDiem toan : ");
          scanf("%f", &diem);
          danhsach[numrecords].diemtoan = diem;
          printf("\nDiem ly : ");
          scanf("%f", &diem);
          danhsach[numrecords].diemly = diem;
          printf("\nDiem hoa : ");
          scanf("%f%*c", &diem);
          danhsach[numrecords].diemhoa = diem;
          numrecords++;
        }
      } while (!done);
    
      for (i=0; i<numrecords; i++)
      {
        printf("\n+-----+------------------------------------+--------+------+------+------+");
        printf("\n| STT |         H O   V A   T E N          |  L O P | TOAN |  LY  |  HOA |");
        printf("\n+-----+------------------------------------+--------+------+------+------+");
        for (i=0; i<numrecords; i++)
        {
          printf("\n| %3d | ", i+1);
          printf("%-35s| %-7s| %4.1f | %4.1f | %4.1f |", danhsach[i].hoten,danhsach[i].lop,
                 danhsach[i].diemtoan, danhsach[i].diemly, danhsach[i].diemhoa);
        }
        printf("\n+-----+------------------------------------+--------+------+------+------+");
      }
      getch();
    }
    while (!done); có ngĩa là gì vậy cá nghĩa là gì vạy các bạn.

    Phần in màu,có thể làm theo cách khác không.Nếu có,các bạn có thể gợi ý không.

  2. #2
    No Avatar
    becauseofyoublue Khách

    mình chỉ ghé wa diễn đàn này một chút.
    bạn hỏi về cái while(!done)???
    Bạn tự viết code hay tham khảo ở đâu vậy???
    bạn để ý xem đoạn code:

    void main()
    {
    int done = 0, i;
    char hoten[35];
    float diem;

    do {
    printf("\nHo ten (trong de thoat) : ");
    gets(hoten);
    if (strlen(hoten) == 0)
    done = 1;
    else
    {
    .......
    }
    } while (!done);

    Đây chính là điều kiện dừng khi nhập tên không có kí tự nào tức là bạn bỏ wa việc nhập tên
    ban đầu done=0;
    nếu strlen(ten)=0 thì done=1;
    thì while (!done) lúc này cho done=0; dừng vòng lặp.
    Nó tóm lại while(!done) là điều kiện dừng vòng lặp.
    done=0; thì while(!done) =1 tiếp tục làm
    done=1; thì while(!done) =0 thoát

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