01/10/2018, 08:39

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

Mai Anh Dũng viết 10:50 ngày 01/10/2018

Đó 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.

huyentrang viết 10:43 ngày 01/10/2018

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

atlantica viết 10:39 ngày 01/10/2018

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);
}
Bài liên quan
0