Tại sao phải thêm bước gán mà không cho thẳng vào hàm printf()?

em muốn hỏi là tại sao phải thêm bước gán

tien_lai= laikep(so_tien,so_nam);

mà ko cho thẳng vào hàm printf() ạ?

printf("sau %d nam so tien ban nhan duoc la %f",so_nam,laikep(so_tien,so_nam));

Em cảm ơn.

#include <stdio.h>
#include <stdlib.h>
int laikep(float,int);
int laikep(float co_so,int so_mu)
{
    int i;
    float ketqua;
    ketqua=1;
    for(i=1;i<=so_mu;i++)
        ketqua*=1.1;
    ketqua=ketqua*co_so;
    return ketqua;
}
int main()
{
    float so_tien,tien_lai;
    int so_nam;
    printf("nhap so tien va so nam muon gui\n");
    scanf("%f %d",&so_tien,&so_nam);
    tien_lai= laikep(so_tien,so_nam);
    printf("sau %d nam so tien ban nhan duoc la %f",so_nam,tien_lai);
    return 0;
}

Sao cũng được, nếu không còn tính toán gì nữa. Mục đích gán giá trị vào biết là để dùng nhiều lần.

2 Likes

nhưng mà nếu ko gán cho nó giá trị thì ko ra được kết quả ạ

Vì kiểu trả về sai tính là kiểu float mà kiểu trả về của hàm lại là int.

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