Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4

Chủ đề: Lỗi về hàm pow

  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi phatthientai
    Mình làm bài náy, xài hàm pow , nhưng ghi d không được, f thì được. Có ai giải thích giúp mình không? f lớn hơn d, f được thì d phải được chứ
    Bạn thậm chí còn chưa thuộc hàm pow hỗ trợ những kiểu dữ liệu nào nữa mà nói gì đến dùng nó? hàm pow hỗ trợ những kiểu sau: float, double.
    Muốn dùng cho số nguyên thì thêm phần thập phân sau dấu chấm là 0.
    vd: 9^5=> pow(9.0, 5.0).

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    reference http://www.tutorialspoint.com/c_standard_library/c_function_pow.htm

    Mã:
    (int)pow((double)a, (double)b)// đây là cách mà tôi thường làm, bạn nên ép kiểu về đúng input, output
    note :

    f lớn hơn d, f được thì d phải được chứ
    ngược lại mới đúng nha bạn.... f lớn hơn d, d được thì f phải được # f chứa d <=> f - > d

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    "%d" là format đòi tham số tương ứng phía sau là type int, trong khi hàm pow() trả về type double/float.

    C ko tự chuyển float/double về được là do các tham số phía sau chuỗi format được đưa vào theo va_list (tạm gọi là a). Các tham số trong va_list ko có type rõ ràng. Khi hàm printf() đọc tới type tương ứng trong chuỗi format thì nó sẽ cast tham số tương ứng thành type đó bằng hàm va_arg(). Vd "%d" là va_arg(a, int); "%f" là va_arg(a, float); Hàm va_arg() có lẽ khá kĩ khi ép kiểu, phải ép đúng kiểu chứ ko tự chuyển sang kiểu khác được.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •