計蒜客:蒜頭君的隨機數
阿新 • • 發佈:2019-01-14
問題:
蒜頭君很無聊,現在有
個數,其中第
個數是
。
現在他先將
從小到大排序。
再將
從大到小排序。
請輸出
排序後的最終結果。
輸入格式:
第一行五個整數
,均不超過
。
第二行
個不超過 int 範圍的整數,表示
陣列。
輸出格式:
一行
個用空格分隔的整數,表示
排序以後的結果。
樣例輸入:
6 1 3 2 4
8 3 1 6 9 2
樣例輸出:
1 8 6 3 9 2
題解:
思路:先用兩層for迴圈找到相同的數字,然後再用一層迴圈把重複的刪除,同時把個數減少,之後再用sort()函式排序
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{
int n;
cout << "請輸入要輸入的數字個數:";
cin >> n;
int *p = new int[n];
cout << "請輸入" << n << "個數據:" << endl;
for (int i = 0; i < n; i++)
cin>>p[i];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (p[j] == p[i] && j != i)
{
for (int x = j; x < n; x++)
p[x] = p[x + 1];
n--;
}
}
}
sort(p, p + n);
cout << "除重後有:" << n << "個數據" << endl;
cout << "排序好的資料為:" << endl;
for (int i = 0; i < n; i++)
cout << p[i] << " ";
cout << endl;
system("pause");
return 0;
}