Announcement

Collapse
No announcement yet.

Cho hỏi đoạn code đơn giản

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by 12520527 View Post
    Giả sử bạn khai báo 3 biến
    Code:
    int a,b;
    float c;
    Giả sử nhập a= 1 và b = 2
    Nếu thực hiện phép toán
    Code:
    c = a/b
    thứ tự ưu tiên là phép chia rồi đến phép gán.
    vì kết quả của phép chia số nguyên với số nguyên là 1 số nguyên nên kết quả 0.5 sẽ làm tròn xuống còn 0 --> c = 0
    để có kết quả chính xác thì cần ép kiểu số a hoặc số b (hoặc cả 2) thành số thực
    Code:
    c = (float)a/b
    thương của một số thực với một số nguyên là một số thực.
    thứ tự ưu tiên luôn là ép kiểu, chia rồi gán.
    trong trường hợp của bạn, cần ép kiểu số 1 hoặc (2*i) vì 1 là kiểu nguyên, (2*i) cũng là nguyên nên khi chia ra kết quả cũng là số nguyên :confuse:

    chúc bạn học tốt :sure:


    thank bạn nha!! k có nó là mình die rồi!!

    Comment


    • #17
      Originally posted by 12520527 View Post
      bạn sửa thành a=(float)1/(2*i); nhé
      Nếu lười ép kiểu thì a = 1.0/(2*i)
      Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

      Comment


      • #18
        Originally posted by 09520019 View Post
        Nếu lười ép kiểu thì a = 1.0/(2*i)
        cách này hay em cũng nghĩ tới nhưng em thắc mắc ở chổ a=(float)1/(2*i) nó có khác vs a=float(1)/(2*i) không ạ ??
        Hãy cứ sống một cách thật tuyệt vời, rồi những điều tốt đẹp sẽ đến với bạn !!

        Comment


        • #19
          Originally posted by 12520527 View Post
          Giả sử bạn khai báo 3 biến
          Code:
          int a,b;
          float c;
          Giả sử nhập a= 1 và b = 2
          Nếu thực hiện phép toán
          Code:
          c = a/b
          thứ tự ưu tiên là phép chia rồi đến phép gán.
          vì kết quả của phép chia số nguyên với số nguyên là 1 số nguyên nên kết quả 0.5 sẽ làm tròn xuống còn 0 --> c = 0
          để có kết quả chính xác thì cần ép kiểu số a hoặc số b (hoặc cả 2) thành số thực
          Code:
          c = (float)a/b
          thương của một số thực với một số nguyên là một số thực.
          thứ tự ưu tiên luôn là ép kiểu, chia rồi gán.
          trong trường hợp của bạn, cần ép kiểu số 1 hoặc (2*i) vì 1 là kiểu nguyên, (2*i) cũng là nguyên nên khi chia ra kết quả cũng là số nguyên :confuse:

          chúc bạn học tốt :sure:
          cám ơn bạn, bạn nói rất chi tiết, mà bạn : thương của một số nguyên với một số thực thì trên C là thực hay nguyên ???
          Hãy cứ sống một cách thật tuyệt vời, rồi những điều tốt đẹp sẽ đến với bạn !!

          Comment


          • #20
            Originally posted by 12520333 View Post
            cách này hay em cũng nghĩ tới nhưng em thắc mắc ở chổ a=(float)1/(2*i) nó có khác vs a=float(1)/(2*i) không ạ ??
            khác chứ, float(x) nghĩa là tính toán x xong rồi chuyển sang kiểu float, (float)x là chuyển x sang kiểu float để tính toán.
            Last edited by 11520537; 11-11-2012, 22:50.
            Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

            Comment


            • #21
              Originally posted by 12520333 View Post
              cách này hay em cũng nghĩ tới nhưng em thắc mắc ở chổ a=(float)1/(2*i) nó có khác vs a=float(1)/(2*i) không ạ ??
              Cách sau là cú pháp của C++, không phải C chuẩn. Hồi đi học thì code lai lai cái gì xài cũng được sau này gặp một môi trường nào đó đòi hỏi phải code đúng y C chuẩn mà không nhận C++ nó sẽ ném lỗi vô mặt.

              Originally posted by 12520333 View Post
              cám ơn bạn, bạn nói rất chi tiết, mà bạn : thương của một số nguyên với một số thực thì trên C là thực hay nguyên ???
              Dựa vào toán hạng đứng bên trái để quyết định.

              Comment

              LHQC

              Collapse
              Working...
              X