Lúc e chạy chương trình thì nó báo "uninitialized local variable 'a' used " là s ạ?

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à 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

http://pastebin.com/qBCvLCGN
ide mình dùng vs 2015. a Đạt nói đúng đó bạn :v

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?