#include <conio.h>
#include <stdio.h >
void SoLon (int a, int b, int c, int &ketqua);
//khai bao vung nho chua ketqua
void SoLon (int a, int b, int c, int &ketqua)
{
ketqua = ( a > b ) ? a : b ;
ketqua = ( ketqua > c ) ? ketqua : c ;
//thuc thi bieu thuc ta duoc gia tri ketqua tra ve cho &ketqua
}
int main ()
{
int x;
int y;
int z;
int kq;
printf ("nhap vao 3 so thuc\n");
scanf("%d %d %d", &x, &y, &z);
SoLon ( x, y, z, kq);
printf("ket qua so lon nhat =%d\n", kq);
getch();
}
void SoLon (int a, int b, int c, int *ketqua) //<= sử dụng khai báo con trỏ
{
*ketqua = ( a > b ) ? a : b ;
*ketqua = (*ketqua > c ) ? *ketqua : c ;
//thuc thi bieu thuc ta duoc gia tri ketqua tra ve cho &ketqua
}
int main ()
{
int x;
int y;
int z;
int kq;
printf ("nhap vao 3 so thuc\n");
scanf("%d %d %d", &x, &y, &z);
SoLon ( x, y, z, &kq); // <=truyền địa chỉ của kq vào hàm ( "&" ở đây không phải reference nữa mà là toán tử lấy địa chỉ)
printf("ket qua so lon nhat =%d\n", kq);
getch();
}
Mình đoán là lỗi do bạn sử dụng truyền tham chiếu
&tich
, cái này chỉ c++ mới dùng đượcBạn lần sau nhớ đăng cả code để mọi người test cho dễ nhá, lười gõ lại lắm
mình đang học C và trên lớp mình học vẫn dùng dc mà
thằng C không có reference nhé bạn (ký hiệu & trước biến)
bạn sửa lại bằng cách dùng con trỏ nhé
sao code này mình vẫn chạy dc
bạn bị nhầm giữa C và C++. Bạn sử dụng reference nên codeblock không hiểu được (C không có reference). Xảy ra báo lỗi.
giờ phải làm sao bạn
Do bạn mới học nên mình sẽ sửa cho bạn.
cảm ơn bạn cài này mình biết rồi , z bạn cho mình code dùng truyền tham thảo luôn đi
tham chiếu thì bạn làm đúng rồi đấy, nhưng codeblock sử dụng C nên không hiểu được tham chiếu.
bạn sử dụng trình biên dịch khác.
z là phải dùng C-Free đúng không bạn
C-free cũng sử dụng C. Bạn kiếm IDE nào sử dụng C++ ấy. Mình thì đang sử dụng Visual Studio
ủa sao trên lớp mình dùng C free 5 vẫn truyền tham khảo dc mà
à, ok. codeblock vẫn chơi với c++ được. Bạn sửa lại tên file thành .cpp là được.