Chuyển đến phần nội dung

Ý nghĩa của biến temp ?

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

    1. #1

      Ngày gia nhập
      09 2008
      Bài viết
      2

      Unhappy Ý nghĩa của biến temp ?

      Các anh chị xem giúp em biến temp trong 2 đoạn code dưới đây có ý nghĩa gì với:

      void Nhap(DONTHUC &f)
      {
      float temp;
      printf(“Nhap he so:”);
      scanf(“%f”, &temp);
      f.a = temp;
      printf(“Nhap bac don thuc:”);
      scanf(“%f”, &f.n);
      }

      và đoạn code Nhập tọa độ điểm trong mặt phẳng Oxy:

      void Nhap(DIEM &p)
      {
      float temp;
      printf(“Nhap x:”);
      scanf(“%f”, &temp);
      p.x = temp;
      printf(“Nhap y:”);
      scanf(“%f”, &temp);
      p.y = temp;
      }

      Nếu em không dùng biến temp và viêt hàm nhập bình thường thì chương trình vẫn chạy. Vây tại sao trong nhiều tài liệu người ta lại dùng biến temp này. Mong anh chị và các bạnn nào hiểu thì giải thích giúp em với. Em xin cám ơn.

    2. #2

      Ngày gia nhập
      10 2009
      Bài viết
      50

      Theo sách Tin học đại cương A2: thì hàm scanf nhận dữ liệu từ stdin(dòng nhập chuẩn). Chúng teo nhận dữ liệu theo nguyên tắc sau:
      * Nếu trên stdin có đủ dữ liệu thì chúng sẽ nhận một phần dữ liệu mà nó yêu cầu. Phần dữ liệu còn lại vẫn ở trên stdin
      * Nếu trên stdin không đủ dữ liệu theo yêu cầu của hàm thì máy tạm dừng để chờ người sử dụng đưa dữ liệu từ bàn phím lên stdin
      * Xoá khỏi stdin phần dữ liệu đã lấy.
      Như vậy, ta thấy trong chương tình có lệnh này (scanf) thì các lệnh sử dụng sau sẽ bị trôi(không có tác dụng) do mã phím \n còn lại tỏng stdin của lệnh scanf trước đó.
      Vì vậy phải có biến temp(hoặc bất kì) để không bị lỗi này.
      Đây là code của mình từ bị lỗi này, bạn hãy thàm khảo thử, nếu bỏ biến tạm mà sử dụng scanf(“%f”, &a[i]) là bị ngay.

      PHP Code:

      void nhap

      (

      float A

      [],

      int 

      &

      n

      )
      {
          

      float tam

      ;
          for(

      int i

      =

      0

      ;

      i

      <

      n

      ;

      i

      ++)
          {
              

      printf

      (

      "nhan phan tu thu A[%d]"

      ,

      i

      );
              

      scanf

      (

      "%f"

      , &

      tam

      );
              

      A

      [

      i

      ]=

      tam

      ;
          }

      PHP Code:

      void main 

      ()
      {
          

      char a

      ,

      b

      ;
          

      printf

      (

      "Nhap mot so:"

      );
          

      scanf

      (

      "%d"

      ,&

      a

      );
          

      printf

      (

      "Nhap mot ky tu:"

      );
          

      scanf

      (

      "%c"

      , &

      b

      );
          

      printf

      (

      "\n%d %c"

      ,

      a

      ,

      b

      );

      Đã được chỉnh sửa lần cuối bởi tatyasurai : 12-03-2010 lúc

      10:14 PM

      .

    Lên trên