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

Đề tài: Chia 2 số nguyên trong C | Phép gán a = 3/2 sai ở đâu ???

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    68

    Mặc định Chia 2 số nguyên trong C | Phép gán a = 3/2 sai ở đâu ???

    Có 1 cái code đơn giản thế này. Tại sao output lại là 1 ????
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3.  
    4. int main()
    5. {
    6.     float a;
    7.     a = 3/2;
    8.     printf("%f", a);
    9.     getch();
    10. }
    Sửa lại thành như thế này thì đúng ???
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3.  
    4. int main()
    5. {
    6.     float a;
    7.     a = 3*0.5;
    8.     printf("%f", a);
    9.     getch();
    10. }

  2. #2
    Ngày gia nhập
    04 2009
    Bài viết
    3

    Bạn phải ép kiểu lại thì mới ra chứ
    chẳng hạn
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3.  
    4. int main()
    5. {
    6.     float a;
    7.     a = 3/float(2);
    8.     printf("%f", a);
    9.     getch();
    10. }
    hay là
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3.  
    4. int main()
    5. {
    6.     float a;
    7.     a = 3/2.0;
    8.     printf("%f", a);
    9.     getch();
    10. }
    Đã được chỉnh sửa lần cuối bởi lethanh : 21-04-2009 lúc 08:51 PM.

  3. #3
    Ngày gia nhập
    04 2009
    Bài viết
    68

    Code:
    Bạn phải ép kiểu lại thì mới ra chứ
    ép ????

  4. #4
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi xiu_coi Xem bài viết
    Code:
    Bạn phải ép kiểu lại thì mới ra chứ
    ép ????
    default các số không có dấu chấm động đều là integer.

    3/2 là 2 số int chia cho nhau => kết quả sẽ là một số int => kết quả của nó là kiểu int và là 1.
    None!

  5. #5
    Ngày gia nhập
    08 2008
    Nơi ở
    ha noi
    Bài viết
    79

    a Xcross nói đúng rồi cái này lại do không đọc lý thuyết đây mà trong C khi thực hiện phép tính chia nếu muốn lấy phần nguyên thì dùng phép chia "/" còn nếu muốn lấy phần dư thì dùng phép "%" còn nếu muốn lấy độ chính xác của phép toán 1 là ép kiểu hoặc là thêm .0 vào đằng trước toán tử đầu tiên
    VD:
    Code:
    3.0/2==1,5
    u never know

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

    Mặc định Chia 2 số nguyên trong C | Phép gán a = 3/2 sai ở đâu ???

    3 va 2 máy hiểu là số nguyên, vì vậy kết quả 3/2=1, bạn nên ép kiếu thành float là xong

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

  1. Lập trình C cộng trừ nhân chia số nguyên vô hạn trong lập trình C?
    Gửi bởi duckhanh007 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 09-10-2011, 12:14 PM
  2. tách số nguyên tố trong mảng 1 chiều??
    Gửi bởi detective009 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 43
    Bài viết cuối: 26-05-2011, 11:52 PM
  3. hàm về mảng 1 chiều: kiểm tra số nguyên tố trong mảng
    Gửi bởi luckyluke76215 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 09-12-2010, 11:28 PM
  4. tìm số nguyên tố có trong mảng 2 chiều, tính tổng các số nguyên tố đó??
    Gửi bởi lesliuton01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 08-06-2010, 10:21 AM
  5. Lập trình C | Chia 2 số nguyên trong lập trình C
    Gửi bởi NT_OnlyLove trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 31-10-2007, 10:47 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