01/10/2018, 00:19
Cho em hỏi sao chương trình này lại không chạy được cái hàm thứ 2
#include<stdio.h>
float nhap_so(float a,float b,float c)
{
printf("nhap so a "); scanf("%f",&a);
printf("nhap so b "); scanf("%f",&b);
printf("nhap so c "); scanf("%f",&c);
}
float lonnhat(float a, float b, float c)
{
float max;
max =a;
if (max <b) max=b;
if (max < c) max=c;
printf("%f",max);
}
main()
{
float a,b,c;
nhap_so(a,b,c);
lonnhat(a,b,c);
}
Bài liên quan
Chưa chạy code nhưng thấy có nhiều chỗ sai.
P/s: Sau này khi vừa vào thì thuộc lòng rồi gõ y cái sườn này :v
Thứ 1: Bạn học lại cách trình bày code nhé
Bạn đặt kiểu trả về của hàm là
float
thì trong hàm sau khi xử lý phải córeturn x;
vớix
là biến kiểufloat
.Còn trong hàm, bạn thực hiện thao tác nhập giá trị cho tham số thì trên danh sách tham số bạn phải truyền tham chiếu cho nó:
float nhap_so(float &a,float &b,float &c)
.Nhưng chú ý là tham chiếu chỉ có ở C++, bên C không có. Nếu bạn code trên Visual Studio thì không cần quan tâm vấn đề này do file bạn đang code là file.cpp rồi, còn nếu bạn code bằng CodeBlocks thì nên sử dụng tham số là con trỏ, còn không thì tạo file.cpp chứ file.c chắc không cho truyền tham chiếu đâu
Hàm này cũng vậy. Do bạn in ra ngay trong hàm đó và không trả về kết quả xử lý nên để kiểu trả về của hàm là
void
, như thế này:void lonnhat(float a, float b, float c)
Thêm 1 điều nữa là trong hàm main bạn nên để kiểu trả về là
int
và thêm dòngreturn 0;
ở cuối hàm nhé. Còn muốn chương trình dừng nữa thì để thêm dònggetch();
hoặcgetchar();
Cố lên nhé bạn
Sai là đúng rồi chứ còn gì nữa
Hàm nhập
Nếu bạn muốn nhập 1 lúc cả 3 số thì phải truyền tham biến và dùng kiểu void
Bạn nên học lại về hàm nha. biến a,b,c của bạn trong ct ko truyền dc vô ct con đâu