void main()
{
int a, b;
nhap(a, b);
in(a, b);
_getch();
}
void nhap(int a, int b)
{
printf(“a = “); scanf_s(”%d”, &a);
printf(“b = “); scanf_s(”%d”, &b);
}
void in(int a, int b)
{
printf("%d,%d", a, b);
}
Lúc e chạy chương trình thì nó báo "uninitialized local variable 'a' used " là s ạ?
Đó là vì hàm nhập không nhập được giá trị cho a, b. Dẫn đến khi hàm in gọi a, b để in thì hai biến này chưa có giá trị.
Tại sao a,b chưa có giá trị thì đó là do hàm nhập truyền tham trị hay truyền giá trị. Google truyền tham trị có nhiều video, xem một cái sẽ hiểu.
2 Likes
Bạn sử dung con trỏ trong trường hợp này có lẽ sẽ ổn hơn
void nhap(int *a, int *b);
void in(int a,int b);
void main()
{
int a, b;
nhap(&a, &b);
in(a, b);
getch();
}
void nhap(int *a, int *b)
{
int c,d;
scanf("%d", &c);
*a = c;
scanf("%d", &d);
*b = d;
}
void in(int a, int b)
{
printf("\n%d,%d", a, b);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?