30/09/2018, 17:06

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

lỗi j thế m.n

Thành Phạm viết 19:21 ngày 30/09/2018

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


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

Interns viết 19:19 ngày 30/09/2018

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

Minh Hoàng viết 19:20 ngày 30/09/2018

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é

Interns viết 19:21 ngày 30/09/2018
#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

Minh Hoàng viết 19:12 ngày 30/09/2018

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.

Interns viết 19:12 ngày 30/09/2018

giờ phải làm sao bạn

Minh Hoàng viết 19:19 ngày 30/09/2018

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();
}
Interns viết 19:21 ngày 30/09/2018

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

Minh Hoàng viết 19:18 ngày 30/09/2018

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.

Interns viết 19:18 ngày 30/09/2018

z là phải dùng C-Free đúng không bạn

Minh Hoàng viết 19:14 ngày 30/09/2018

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

Interns viết 19:15 ngày 30/09/2018

ủa sao trên lớp mình dùng C free 5 vẫn truyền tham khảo dc mà

Minh Hoàng viết 19:12 ngày 30/09/2018

à, ok. codeblock vẫn chơi với c++ được. Bạn sửa lại tên file thành .cpp là được.

Bài liên quan
0