30/09/2018, 18:24

C++ đây là lỗi gì vậy mọi người. tại sao 45.5+45.5=90?

Tại sao?
45,5 + 45,5 = 90
hoặc
123,456 / 654,321 = 0,188073
Nó nên là 123,456 / 654,321 = 0,1886780342 (bên phải)

main.cpp

//#include <iostream>
//#include "add.h"
 
int main()
{
    using namespace std;
    float x = enterNumber();
    float y = enterNumber();
    summation(x+y);
    cin.get();
    return 0;
}
add.cpp

//#include <iostream>
//#include <iomanip>
 
int enterNumber()
{
    using namespace std;
    float x;
    cout << "Enter any number" << endl;
    cin >> x;
    cin.get();
    return (x);
}
 
void summation(float x)
{
    using namespace std;
    cout << "Results returned :" << x << endl;
}
add.h

//#ifndef ADD_H
//#define ADD_H
 
int enterNumber();
void summation(float x);
 
//#endif
Ngo Dinh Quyen viết 20:33 ngày 30/09/2018

Thuật toán của bạn rối quá.
Lỗi là ở chỗ hàm enterNumber bạn để kiểu giá trị trả về là int thay vì float nên 45,5 -> 45 -> 45,5 + 45,5 = 90 thay vì 91,0.

Tran viết 20:40 ngày 30/09/2018

Công nhận!! Mà mình đọc cái tiêu đề là biết bạn bị lỗi ở chỗ giá trị trả về rồi . Mình đã từng bị một lần mày mò cả buổi mới nhận ra giờ thì có lẽ nhớ hết đời luôn .

Bài liên quan
0