01/10/2018, 09:48

Tại sao em in ra toàn = 0 vậy

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    float tong_tien, a;
    int b,n;
    printf("so tien: a="); scanf("%d", &a);
    printf("so nam: n="); scanf("%d", &n);
    for(b=1;b<=n;b++)
    {
        tong_tien  = a * pow(108/100,b-1);
        printf("%d %f
", b, tong_tien);
    }
    return 0;
}
HK boy viết 11:54 ngày 01/10/2018

Format lại code bạn ơi :v thêm 3 dấu ` ở trước và sau code.

Bạn định nghĩa a là float, nhưng đọc a với scanf("%d", &a), tức là sai chỉ thị dịch (đáng ra phải là “%f”)

Trần Phú Quy viết 12:00 ngày 01/10/2018

Thứ nhất bạn float a mà lại scanf("%d", &a); //chắc bạn muốn ép kiểu ha.
thứ 2 hàm pow(float a, float b); giá trị truyền vào là số thực, dấu chấm động. Khi bạn truyền tham số 108/100 thì nó ko định nghĩa là số thực, kết quả sẽ cho là 3.000000 (a=3.0, n=2, b=1) thay vì 3.240000.
Phong cách code của e khó đọc, nhát là nhớ biến nào làm nv gì.

Bài liên quan
0