配列を検索して特定のインスタンスを見つける方法の例がたくさんあります。やりたいことは、すべてのインスタンスを見つけて出力することです。たとえば、この構造体があります
struct BookInfo
{
char title[50];
int numAuthors;
char authors[50][50];
int year;
int checkedout;
};
struct BookInfo library[500];
そして、私は年内に検索する機能を持っていますが、見つけた最初のインスタンスしか提供しません.ボットインスタンスを提供するにはどうすればよいですか??? 機能はこちら
int yearsearch()
{
int target, i, l, r, mid;
l = 0;
r = 14-1;
printf("type a year to search for book");
scanf("%d", &target);
while(l <= r)
{
mid = (l+r)/2;
if(library[mid].year == target)
{
printf("\n%s",library[mid].title);
printf(" %d",library[mid].year);
printf("These are all the books with that year");
break;
}
else if (library[mid].year < target)
{
l = mid + 1;
}
else
{
r = mid - 1;
}
if(l > r)
printf("The target is not in the array.\n");
}
menu();
}