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

Đề tài: Nhập số nguyên - xuất kết quả số thực?

  1. #1
    Ngày gia nhập
    02 2012
    Bài viết
    0

    Mặc định Nhập số nguyên - xuất kết quả số thực?

    Em có một bài tập sau:



    Và đây là code của em:

    // Chuong trinh nhap so nguyen, xuat ket qua tinh bieu thuc
    // Khai bao thu vien
    #include <stdio.h>
    #include <conio.h>
    // Khai bao ham chinh
    void main ()
    {
    int x; // Dinh dang x la so nguyen
    float kq; // Dinh dang ket qua la so thuc
    printf("Nhap x: "); // Yeu cau nhap x
    scanf("%f", &x);
    kq = x*x/(1+x*x/(1+x*x/(1+x*x))); // Tinh gia tri bieu thuc
    printf("Ket qua = %0.4f", kq); // Xuat ket qua
    getch();
    }

    Em chạy chương trình, nhưng khi nhập vào số nguyên thì toàn ra kết quả 0.000
    Mong anh chị giúp giùm!
    Em xin cảm ơn!

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Toán tử / khi thực hiện a/b nếu a và b đều là số nguyên thì nó sẽ thực hiện phép chia nguyên. VD : 2/3 thì sẽ ra 0 . , 3/2 là ra 1.

    Nếu 1 trong 2 số a,b là số thực thì nó là phép chia thực. 3.0/2 = 1.5
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    11 2010
    Nơi ở
    Black Hole
    Bài viết
    824

    kq = x*x/(1.+x*x/(1+x*x/(1+x*x)));

    thử xem sao
    Come as guest...... stay as family......... because we're smiling together.

  4. #4
    Ngày gia nhập
    11 2010
    Bài viết
    589

    C Code:
    1. scanf("%f", &x);
    x là int mà nhập vào kiểu này là không ổn.
    Với câu lệnh này, hàm scanf sẽ coi x là con trỏ tới biến float, tức là ghi số người dùng nhập vào &x theo định dạng float.VD, nếu người dùng nhập 2, thì x sẽ có biểu diễn nhị phân là: 01000000 00000000 00000000 00000000 (biểu diễn nhị phân của số float 2), nhưng vì x vốn là biết int nên nó lại có giá trị là 2^30.

    Cho nên phải sử câu lệnh trên thành:
    C Code:
    1. scanf("%d", &x);

    Các hàm nhập xuất có định dạng trong C như printf, scanf ... không có khả năng kiểm tra kiểu của tham số nhập vào nên khi sử dụng phải tự kiểm tra thật cẩn thận, và nên nhờ vào sự trợ giúp của trình biên dịch để phát hiện lỗi.

    Sau đó để ra kết quả là số thực thì 1 trong 2 thành phần của phép chia phải là số thực. Bạn có thể thay số 1 trong biểu thức kia thành 1.0 hoặc thay x bằng số thực x1 = (float)x

  5. #5
    Ngày gia nhập
    02 2012
    Bài viết
    1

    chi cần khai báo float x; la xong

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

  1. Kỹ thuật C nhập xuất với struct học sinh bị trôi việc nhập không biết nguyên nhân tại đâu
    Gửi bởi Hades_Huynh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 22-11-2013, 11:12 PM
  2. Lập trình C Đổi Số Nguyên Ra Số Nhị Phân Dùng Stack, lỗi không xuất ra được kết quả?
    Gửi bởi chungkhung trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 13-06-2013, 12:06 PM
  3. Bài tập C Nhập vào một số nguyên N và xuất ra các số nguyên tố <N
    Gửi bởi xitrum5393 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 11
    Bài viết cuối: 17-10-2011, 02:21 PM
  4. Bài tập C++ nhập mảng gồm n (5<n<10) phần tử, xuất mảng và xuất ra các số nguyên tố của mảng
    Gửi bởi viettan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 08-01-2011, 10:23 PM
  5. [C] Nhập vào một số nguyên, xuất ra số La Mã
    Gửi bởi hirikarate trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 08-04-2007, 05:32 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