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