01/10/2018, 12:21

Tại sao code không chạy được

// Tại sao chương trình không chạy được, mình vẫn chưa hiểu, ai giải thích mình hộ. Chân thành cám ơn các bạn.

void main(void)
{
    struct nhanvien
    {
        int manv;
        char hoten[30];
    };
    struct nhanvien snv[MAX];
    char ctam[10];
    int i, in;
    printf("Nhap vao so nhan vien: ");
    gets(ctam);
    in = atoi(ctam);
//Nhap danh sach nhan vien
    for(i = 0; i < in; i++)
    {
        printf("Nhap vao ma nhan vien thu %d: ", i + 1);
        gets(snv[i].manv);
        printf("Nhap vao ho ten: ");
        gets(snv[i].hoten);
    }
//in danh sach nhan vien
    for(i = 0; i < in; i++)
        printf("%5d %s
", snv[i].manv, snv[i].hoten);
    getch();
}
HK boy viết 14:23 ngày 01/10/2018

Code bạn có báo lỗi gì không bạn?

Thi Nguyen viết 14:36 ngày 01/10/2018

Code mình nó không chạy đó bạn. Nguyên nhân thì mình cũng chưa rõ, nhưng mình debug thì nghi ngờ hàm get(), nhờ mọi người hướng dẫn tại sao chương trình không chạy được. Cám ơn bạn.

HK boy viết 14:24 ngày 01/10/2018

Không chạy như thế nào thì bạn phải nói rõ ra. IDE có báo lỗi gì không? Bạn chụp màn hình console/IDE cho mình xem.

Thi Nguyen viết 14:34 ngày 01/10/2018

Hoàn toàn không báo lỗi khi debug đó bạn nhưng chương trình chỉ cho phép nhập đến " Nhap vao ho ten" là nó đứng hình luôn. Và code đúng của nó là như bên dưới: Mấy bạn so sánh xem cả 2 có gì khác mà chương trình phía trên không chạy nhưng phía dưới lại chạy hoàn toàn đúng.

void main(void)
{
    struct nhanvien
    {
        int manv;
        char hoten[30];
    };
    struct nhanvien snv[MAX];
    char ctam[10];
    int i, in;
    printf("Nhap vao so nhan vien: ");
    gets(ctam);
    in = atoi(ctam);
   //Nhap danh sach nhan vien
    for(i = 0; i < in; i++)
    {
        printf("Nhap vao ma nhan vien thu %d: ", i + 1);
        gets(ctam);
        snv[i].manv = atoi(ctam);
        printf("Nhap vao ho ten: ");
        gets(snv[i].hoten);
    }
//in danh sach nhan vien
    for(i = 0; i < in; i++)
        printf("%5d %s\n", snv[i].manv, snv[i].hoten);
    getch();
}
Hieu Hoang viết 14:36 ngày 01/10/2018

khác nhau ở chỗ gets(ctam) và gets(svn[i].manv), ctam là 1 biến con trỏ còn svn[i].manv là biến int. Hàm gets chỉ đưa vào biến con trỏ đc thôi

Thi Nguyen viết 14:34 ngày 01/10/2018

Cám ơn bạn, mình đã biết code sai từ đâu rồi.

X viết 14:26 ngày 01/10/2018

2 posts were merged into an existing topic: Topic chứa các reply được cho là off-topic - version 2

Bài liên quan
0