Functions Returning Non-integers (Hàm trả lại giá trị không phải là số nguyên)
Hôm nay, mình tiếp tục giới thiệu đến các bạn 1 vấn đề rất cơ bản nữa, đó là: hàm trả lại giá trị không phải là số nguyên.Tuy đơn giản nhưng nó rất có ích cho việc lập trình của các bạn sau này.Trong các video của anh Đạt , cũng như trong quá trình viết code thì chúng ta đã rất quen với các hàm như:
void nhap_mang(int so_nguyen[],int so_phan_tu);
int hoan_doi(int x,int y);
2 dạng hàm ở trên được sử dụng rất nhiều nhưng trong một số trường hợp nếu ta trả về 1 giá trị kiểu float
hay double
thì phải làm sao? Việc này rất đơn giản.VD. cũng là hàm hoan_doi
ở ví dụ trên nhưng ta muốn trả về kiểu float
thì chỉ cần khai báo lại như sau:
float hoan_doi(int x,int y);
Để rõ hơn mình sẽ lấy 1 ví dụ cụ thể hơn.
#include<stdio.h>
double sum(double so_thuc[],int so_phan_tu);
void nhap_mang(double so_thuc[],int so_phan_tu);
int main()
{
int so_phan_tu;
double so_thuc[20];
do
{
printf("Nhap so phan tu cua mang:");
scanf("%d",&so_phan_tu);
if((so_phan_tu<=0)||(so_phan_tu>20))
printf("Gia tri da nhap khong hop le.Xin moi nhap lai so phan tu cua mang.
");
}
while((so_phan_tu<=0)||(so_phan_tu>20));
nhap_mang(so_thuc,so_phan_tu);
printf("Tong cac phan tu trong mang bang:%f",sum(so_thuc,so_phan_tu));
return 0;
}
void nhap_mang(double so_thuc[], int so_phan_tu)
{
for(int i=0; i<so_phan_tu; i++)
{
printf("so_thuc[%d]",i);
scanf("%lf",&so_thuc[i]);
}
}
double sum(double so_thuc[],int so_phan_tu)
{
double sum=0;
for(int i=0; i<so_phan_tu; i++)
sum+=so_thuc[i];
return sum;
}
Mình viết code trên để thực hiện yêu cầu:Khởi tạo một mảng số thực có n phần tử (n<0<=20) và tính tổng các phần tử trong mảng.
Tới đây mình xin kết thúc bài viết này.Chúc các bạn học tốt. Nếu có gì không hiểu cứ hỏi tích cực vào.