Chương trình tính lãi suất bị sai

   #include <iostream>
    using namespace std;

    int main()
    {
        int von,thang,laisuat;
        cin >> von ;
        cin >> thang ;
        cin >> laisuat;
        float x= (thang*laisuat/12);
        cout << (int)(von+(long double)(von*x)/100);
        return 0;
    }

Đề cho nhâp vốn, số tháng gửi, và lãi suất/năm. Em chạy chương trình thì thấy chỗ x xuất ra nó không đúng. Ví dụ 13 tháng và lãi suất 5%.

Bạn đặt tên biến rõ ràng hơn được không. :wink:

Và cũng quote lại đề luôn. (Để đề bài + các vấn đề gặp phải ở dưới chứ không phải để ở title. :slight_smile:)

3 Likes

em sửa lại rồi đấy ạ !!

Vế phải vẫn là số nguyên :smiley:

4 Likes

#include
using namespace std;

int main()
{
    long long int von;
    int thang,laisuat;
    cin >> von ; cout << "\n";
    cin >> thang ;cout << "\n";
    cin >> laisuat;
    cout << (long long int)(von+(long double) (von/100)*thang/12*(laisuat));
    return 0;
}

thế còn bài này sao ạ??

từ số nguyên chuyển sang số thực chỉ cần lấy số 1.0 nhân với biến đầu tiên là được.
float x = 1.0*thang*laisuat/12

2 Likes

Nên để kiểu float hoặc double thì hơn. :slight_smile:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?