---小哼买书

小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读
哪些书。小哼让每个同学写出一个自己最想读的书的 ISBN 号(你知道吗?每本书都有唯一
ISBN 号,不信的话你去找本书翻到背面看看)。当然有一些好书会有很多同学都喜欢,
这样就会收集到很多重复的 ISBN 号。小哼需要去掉其中重复的 ISBN 号,即每个 ISBN 号只
保留一个,也就说同样的书只买一本(学校真是够抠门的)。然后再把这些 ISBN 号从小到
大排序,小哼将按照排序好的 ISBN 号去书店买书。请你协助小哼完成“去重”与“排序”
的工作。
输入有 2 行,第 1 行为一个正整数,表示有 n 个同学参与调查(
n 100 )。第 2 行有 n
个用空格隔开的正整数,为每本图书的 ISBN 号(假设图书的 ISBN 号在 1~1000 之间)。
输出也是 2 行,第 1 行为一个正整数 k ,表示需要买多少本书。第 2 行为 k 个用空格隔
开的正整数,为从小到大已排好序的需要购买的图书的 ISBN 号。
例如输入:
10
20 40 32 67 40 20 89 300 400 15
则输出:
8
15 20 32 40 67 89 300 400

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#include
using namespace std;

int main()
{
	//桶排序
	int ISBN[1001];
	int n, k = 0, t;
	cin >> n;

	for (int i = 0; i < 1000; i++)
		ISBN[i] = 0;

	for (int i = 0; i < n; i++)
	{
		cin >> t;
		if(ISBN[t]==0)
          k++;

		ISBN[t] = 1;
		
	}
	cout << k << endl;

	for (int i = 0; i < 1000; i++)
	{
		if (ISBN[i] == 1)
			cout << i << " ";
	}

	//冒泡排序
	int a[101] = { 0 };
	int n;

	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}

	int tmp = 0;
	for (int i = 1; i <= n - 1; i++)
		for (int j = 1; j <= n - i; j++)
		{
			if (a[j] > a[j + 1])
			{
				tmp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = tmp;

			}
		}

	cout << a[1] << " ";
	for (int i = 2; i <= n; i++)
	{
		if (a[i] != a[i - 1])
			cout << a[i] << " ";
	}


	return 0;







	return 0;
}

你可能感兴趣的:(算法,数据结构)