khắc phục lỗi khai báo hàm

lỗi j thế m.n

1 Like

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 được :blush:


Bạn lần sau nhớ đăng cả code để mọi người test cho dễ nhá, lười gõ lại lắm :smile:

mình đang học C và trên lớp mình học vẫn dùng dc mà

1 Like

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é

#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();
}

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.

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();
}
1 Like

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.

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