#include <stdio.h>
#include <iostream>
#include <algorithm>//快速排序头文件
using namespace std;
#define X 100
bool cmp(int a, int b)
{
//从小到大快速排序
return a < b;
}
int main()
{
int a[]={20 ,50 ,30 ,10, 60, 90, 75, 30, 10, 20};/*测试使用*/
int n = sizeof (a)/sizeof(a[0]);//获取数组的长度
sort(a, a + n,cmp);//使用快速排序对数组进行排序
//实现去除数组中相同的数
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i] == a[j]) {
for (int k = j + 1; k < n; k++) {
a[k - 1] = a[k];
}
n--;//改变数组n的打印范围
}
}
}
//打印出数组的结果
for (int i = 0; i < n; i++) {
cout << a[i] << endl;
}
//打印X范围个数,数a组中的数不打印
int t = 0;//控制打印元素的下标取值范围
for (int i = 0; i < X; i++)
{
if (i==a[t]&&t<n)
{
t++;
}
else
{
cout << i << endl;
}
}
system("pause");
return 0;
}
在不改动数组内容的情况下实现在一个整数范围内,打印出所有数,不打印数组里面的数
#include <stdio.h>
#include <iostream>
#include <algorithm>//快速排序头文件
using namespace std;
#define X 100
bool cmp(int a, int b);
int main()
{
int a[] = { 20 ,50 ,30 ,10, 60, 90, 75, 30, 10, 20 };/*测试使用*/
int n = sizeof(a) / sizeof(a[0]);//获取数组的长度
sort(a, a + n, cmp);//使用快速排序对数组进行排序
int t = 0;
for (int i = 0; i < X; i++)
{
if (i == a[t] && t < n)
{
while (i == a[t] && t < n)
{
t++;
}
}
else
{
cout << i << " ";
}
}
system("pause");
return 0;
}
bool cmp(int a, int b)
{
//从小到大快速排序
return a < b;
}
打印数组中的所有数,重复的只输出一次
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b);
int main(),
{
int a[]= {35,10,20,27,13,35,28,15,
10,40,37,10,28,37,40,49};
int n=sizeof(a)/sizeof(a[0]);
sort(a,a+n,cmp);
for(int i=0; i<n-1; i++)
{
if(a[i]!=a[i+1])
{
cout << a[i] <<" ";
}
}
cout << a[n-1] << endl;
return 0;
}
bool cmp(int a,int b)
{
return a<b;
}