由于校赛,OJ将于本周五(5.17)到周日停止服务

Problem 1781. -- 书店收到订单

1781: 书店收到订单

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

Description

某书店有n种图书在销售(不超过100),每种图书的信息包书名(char name[20]),库存(int stock)和单价(float price)。
书店目前收到一批订单,订单上的书存在且库存足够的时候,订单才会成交(显示订单成交信息),成交后需要修改库存,如果库存为0,则应该将该图书信息删除。
如果该图书存在但数量不够或者不存在该图书,则输出订单失败以及原因
编写程序,首先将该书店原有的所有图书信息读进来(已按书名升序有序),
然后对订单上每一种图书进行处理,显示相关信息。
最后输出更新后的所有图书信息。

注意: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++)
        {
            //对订单的每一种图书进行处理,如果从结构体数组中删除了图书数据则返回1,否则返回0
            t=delet(book,n);
            if(t) n--;
        }
        print(book,n);   //输出n个职工的信息
    }
    return 0;
}

Input

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

Output

每组测试数据输出占若干行。
前面m行,输出订单中每种图书的处理信息,如果成交,则输出“Order OK”,如果失败且因为数量不够,则输出“Order Fail!Quantity is not enough”,如果失败因为不存在该图书,则输出“Order Fail!The book does not exist”
接下来的一行输出更新后的图书种类数n,后面紧接n行,每行输出一种图书的信息。数据依次为:书名,库存和单价(保留2位小数)。各部分数据之间用空格隔开。(具体详见样例输出)

Sample Input

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

Sample Output

Order OK
Order OK
Order Fail!The book does not exist
Order Fail!Quantity is not enough
4
C语言程序设计 200 29.50
大学计算机基础 6 23.50
高等数学 16 31.50
英语 20 38.25

[Submit][Status][Web Board]