Chương trình in ra số lạ

Các a ơi e mới học c làm xong program nó ra dòng số lạ này thì làm thế nào để xóa nó đi

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[]) // Tuong tu voi int main
{
    long tuoi = 0;
    printf("Nhap so tuoi cua ban:%ld", &tuoi);
    scanf("%ls",&tuoi);
    if (tuoi>=18)
    {
        printf("Ban la nguoi truong thanh !\n");
    }
    else // Neu khong
    {
        printf("Hehe,ban la con nit!");
    }
}
Nhap so tuoi cua ban:6487580

&
Với cả nhập long dùng %ld thì phải

Cảm ơn a ,Giờ nó chỉ hiện số 0 thôi nhưng cũng đc rồi

Tiện a giải thích cho e tại sao dấu & ở chỗ đó làm kết quả thay đổi ko ? E mới tự học nên chưa biết gì .

Dấu & nghĩa là địa chỉ ô nhớ. Bạn in ra địa chỉ của ô nhớ lưu biến “tuoi”

Với cả bạn in ra rồi mới nhập vào thì nó chả in ra 0, lúc bạn in ra bạn đã scanf đâu, tuoi vẫn bằng 0 mà

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