问题 4105 --整理书籍

4105: 整理书籍★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 71  解决: 56
[提交][状态][命题人:]

题目描述

期末考试结束Yhw同学为了报答在期末时给予了巨大帮助的图书馆,想要设计一个找书的程序,可以帮助图书管理员快速整理书籍。

在一排书架上有nn<=10)本书,每本书都有对应的书名、编号、摆放的位置(最左边为第一本,然后是第二本……以此类推),输入想要整理的书籍的本数m(前m本),程序能正确将书籍按照编号从小到大排序。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct BOOK
{
	char name[20];
	int bianhao;
	int weizhi;
}book[20];
int main() 
{
	int n,m,t,flag=0;
	char T[20];
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>book[i].name >>book[i].bianhao >>book[i].weizhi ;//读入数据 
	}
	cin>>m;
	for(int i=0;i<m-1;i++)
	    for (int j=0; ____(1)____;j++)
	    {
	    	if(____(2)____)
	    	{
	    		t=book[j].bianhao;
	    		book[j].bianhao=book[j+1].bianhao;
	    		book[j+1].bianhao=t;
	    		strcpy(T,book[j].name);
	    		____(3)____;
	    		strcpy(book[j+1].name,T);
			}
		}
    int wz=1;   
    for(int q=0;q<n;q++)
    {
	____(4)____;
    wz++;
	}
	return 0;
}

输入

第一行输入n,表示有n本书。接下来的n行,每行依次输入书名、编号、摆放的位置,最后一行输入要整理的书籍本数m

输出

按编号从小到大输出该编号书籍的名字,编号,正确摆放后的位置。

样例输入
Copy
4
shuihuzhuan 2341 2
hongloumeng 3467 4 
xiyouji 3455 3
sanguoyanyi 1977 1
3
样例输出
Copy
shuihuzhuan 2341 1
xiyouji 3455 2
hongloumeng 3467 3
sanguoyanyi 1977 4

提示

来源

[提交][状态]