C++テーマ:3.乱数ソート

8690 ワード

学校の中でいくつかの学友にいっしょに1种のアンケート调査をしてもらいたいのに、実験の客観性のため、彼は先にコンピュータでN个の1から1000の间のランダムな整数(N≦1000)を生成して、その中の缲り返した数字に対して、ただ1つだけ残して、残りの同じ数を除いて、异なる数は异なる学生の学号に対応しています.それからこれらの数を小さいものから大きいものに並べて、並べた順番に同級生を探して調査します.「重み付け」と「並べ替え」の仕事を終えたのに協力してください.Input Param n入力乱数の個数inputArray n個の乱数からなる配列Return Value OutputArray出力処理後の乱数注:試験例は入力パラメータの正確性を保証し、解答者は検証する必要がない.テスト例は1つ以上です.入力説明:複数行を入力し、ランダムな整数の個数を入力し、対応する個数の整数出力説明を入力します:複数行を返し、処理後の結果
//      ,    ,         
//      ,      ,             ,   , ,    
//   ,   
//     ,        ,      
#include
#include
using namespace std;
int main()
{
    int rand,k=0;
	vector<int> vec;
	int temp[100];
	while (cin >> rand)
	{
		vec.push_back(rand);
	}
	cout <<"        :n="<< vec.size() << endl;
	for (int i = 0; i < vec.size() - 1; i++)
	{
		for (int j =i+1; j < vec.size() ; j++)
		{
			if (vec[i] > vec[j])
			{
				swap(vec[i], vec[j ]);
			}
		}
	}
	for (int i = 0; i < vec.size()-1; i++)
	{
		if (vec[i] != vec[i+1])
			temp[k++] = vec[i];
	}
	if (vec[vec.size() - 2] != vec[vec.size() - 1])
		temp[k] = vec[vec.size() - 1];
	cout << "        :k=" << k+1 << endl;
	for (int i = 0; i <= k; i++)
		cout << temp[i] << endl;
	return 0;
}