Hỏi về đoạn code tìm sách theo mã hoặc tên tác giả

Em có cái code này ạ thì lúc em chạy nó tim được sách bằng mã sách thì được mà tìm bằng tác giả thì em tìm ko được mn có thể cho em hỏi em sai khúc nào không ạ?

#include<stdio.h>
#include<conio.h>
#include<windows.h>
typedef struct {
    int MaSach;
    char TenSach[100];
    char TacGia[100];
   
} Sach;
void nhap(int *n,Sach s[100])
{
    printf("\nNhap so luong sach: ");
    scanf("%d",n);
    for(int i=0;i<*n;i++)
    {
        printf("\nNhap thong tin sach so %d",i+1);
        printf("\nMa sach: ");
        scanf("%d",&s[i].MaSach);
        printf("\nTen Sach: ");
        fflush(stdin);
        gets(s[i].TenSach);
        printf("\nTac Gia: ");
        fflush(stdin);
        gets(s[i].TacGia);
   
    }
}
void TimMaSach(int n,Sach s[100])
{
    int i;
    int ms;
    printf("\nNhap ma sach: ");
    scanf("%d",&ms);
    printf("\nMa Sach/Ten Sach/Tac Gia");
    for(i=0;i<n;i++)
    {
        if(s[i].MaSach == ms)
            printf("\n%d\t%s\t%s",s[i].MaSach,s[i].TenSach,s[i].TacGia);
    }
}
void TimTacGia(int n,Sach s[100])
{
    int i;
    char tg[100];
    printf("\nNhap tac gia: ");
    scanf("%s",&tg);
    printf("\nMa Sach/Ten Sach/Tac Gia");
    for(i=0;i<n;i++)
    {
        if(s[i].TacGia == tg)
            printf("\n%d\t%s\t%s",s[i].MaSach,s[i].TenSach,s[i].TacGia);
    }
}
main()
{
    int c,n;
    Sach s[100];
    while(c!=4)
    {
        printf("\nChon 1: Tao danh muc sach");
        printf("\nChon 2: Tim ma sach");
        printf("\nChon 3: Tim tac gia");
        printf("\nChon 4: Ket thuc");
        printf("\nMoi ban chon: ");
        scanf("%d",&c);
        switch(c)
        {
            case 1:
                nhap(&n,s);
                break;
            case 2:
                TimMaSach(n,s);
                break;
            case 3:
                TimTacGia(n,s);
                break;
            default:
                printf("Khong hop le");
                system("pause");
                system("cls");
        }
    }  
}

sao bạn không thử chèn thêm 1 dòng in vô trước lệnh này để thử kiểu một câu
so sanh abc vs xyz, ket qua: false để xem sự so sánh của bạn đúng chưa (tất nhiên abc, xyz, false thì phải lấy từ biến và kết quả so sánh)

code này do bạn hay do ai viết, bạn nghĩ sau này bạn đi làm mà có lỗi xảy ra thì ai sẽ là người sửa

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