/******************************************************
* CP-I Warmup 1999-2000
* Problem #10
*****************************************************/
/*
* Question:
*
* Write a program to declare an array of structures to contain
* the details of 10 books. The inforamtion of the book number,
* the title of the book and the name of the author(s) should be
* made available. If the user enters the book number, other details
* of the corresponding book should be displayed.
*/
#include <stdio.h>
#define NO_OF_BOOKS 10
#define TITLE_LENGTH 40
#define AUTHORS_LENGTH 60
struct book{
int number;
char title[TITLE_LENGTH];
char authors[AUTHORS_LENGTH];
};
struct book books[NO_OF_BOOKS];
int no_of_books;
main()
{
int i,opt,b_num;
printf("Give the no. of books: ");
scanf("%d",&no_of_books);
if(no_of_books>NO_OF_BOOKS)
{
printf("The program can not hold %d books\n",no_of_books);
printf("It should be less than %d\n",NO_OF_BOOKS);
exit(0);
}
for(i=0;i<no_of_books;i++)
{
printf("Give the Details of %d book: \n",i+1);
printf("Book Number: ");
scanf("%d",&books[i].number);
getchar();
printf("Title: ");
scanf("%[^\n]",books[i].title);
getchar();
printf("Authors: ");
scanf("%[^\n]",books[i].authors);
getchar();
}
printf("\n\n\n\n\n\n\n\n\n");
while(1)
{
printf("Give 1 to Search(default); 0 to Quit: ");
scanf("%d",&opt);
printf("\n");
if(opt==0)
break;
printf("Enter the Book Number: ");
scanf("%d",&b_num);
printf("\n");
opt=search(b_num);
if(opt==-1)
printf("No book is found with the number : %d\n",b_num);
else
{
printf("\n\n\n");
printf("Book Number: %d\n",b_num);
printf("Title: %s\n",books[opt].title);
printf("Author(s): %s\n",books[opt].authors);
printf("\n\n\n");
}
}
}
int search(int num)
{
int i;
for(i=0;i<no_of_books;i++)
if(books[i].number==num)
return i;
return -1;
}