Problem 1780. -- 书店购进新图书

1780: 书店购进新图书

Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
Submitted: 361  Accepted: 128
[Submit][Status][Web Board]

Description

某书店有n种图书在销售(不超过100),每种图书的信息包书名(char name[20]),库存(int stock)和单价(float price)。
书店目前新购进若干图书,需要将它们的信息录入到计算机中。
编写程序,首先将该书店原有的所有图书信息读进来(已按书名升序有序),
然后将新购图书的信息插入进去。
最后输出更新后的所有图书信息。
插入过程中,如果该书存在,则需要将新购数量加到库存中去,如果不存在该图书,则应该将该图书添加进去,使得添加后仍然按照书名升序有序。

注意:main函数已经给定(如下所示)。

           请将程序补充完整。

           提交时只需要提交自己补充的代码部分,不需要提交给定的main函数的代码部分。

#include<stdio.h>
int main()
{
    int n,m,i,t;
    struct Book book[100];
    while(scanf("%d",&n)!=EOF)
    {
        input(book,n);   //读入n个职工的数据
        scanf("%d",&m);
        for(i=0;i<m;i++)
        {
            //插入一种新购图书,如果存在该图书,则修改库存,返回0,否则添加新图书,返回1
            t=insert(book,n);
            if(t) n++;
        }
        print(book,n);   //输出n个职工的信息
    }
    return 0;
}

Input

包含多组测试数据,每组测试数据第一行包含1个正整数n(大于1小于100),表示图书种类。
接下来的n行为n种图书的详细信息,每行一种图书的信息,包括书名,库存和单价,各数据之间用空格隔开。
接下来的一行包含一个正整数m,表示新购进m种图书。
最后m行,每一行包括一种图书的信息,包括:书名,新购数量,单价。
n+m<100

Output

每组测试数据输出占若干行。第一行输出图书种类数n,后面紧接n行,每行输出一种图书的信息。数据依次为:书名,库存和单价(保留2位小数)。各部分数据之间用空格隔开。(具体详见样例输出)

Sample Input

5
C语言程序设计 200 29.50
大学计算机基础 6 23.50
高等数学 16 31.50
数据结构 20 22.00
英语 120 38.25
3
数据结构 200 22.00
政治经济学 106 13.50
高等数学 160 31.50

Sample Output

6
C语言程序设计 200 29.50
大学计算机基础 6 23.50
高等数学 176 31.50
数据结构 220 22.00
英语 120 38.25
政治经济学 106 13.50

[Submit][Status][Web Board]