#include <stdio.h>
#include <malloc.h>
#include <assert.h>
void QuickSort(int* left, int* right)
{
assert(left && right);
//只剩1个元素,无需继续排序
//开始回归
if (left >= right)
{
return;
}
int* i = left;
int* j = right;
int pivot = *left;
while (i < j)
{
//j在小于pivot的地方停下来
while (*j >= pivot && j > i)
{
j--;
}
*i = *j;
//i在大于pivot的地方停下来
while (*i <= pivot && i < j)
{
i++;
}
*j = *i;
}
//将基准元素pivot放入它该在的位置
*j = pivot;
QuickSort(left, i - 1);//i是上一轮已经处理好的元素,所以 -1 处理左边的元素
QuickSort(j + 1, right);//j是上一轮已经处理好的元素,所以 +1 处理右边的元素
}
int main()
{
int n = 0;
int i = 0;
int* p = NULL;
scanf("%d", &n);
//开辟空间
p = (int*)malloc(sizeof(int) * n);
if (!p)
{
perror("malloc:p");
return 1;
}
//录入数列
for (i = 0; i < n; i++)
{
scanf("%d", p + i);
}
//进行排序
QuickSort(p, p + n - 1);
//进行去重输出
printf("%d ", *p);
for (i = 1; i < n; i++)
{
if (*(p + i) == *(p + i - 1))
{
continue;
}
printf("%d ", *(p + i));
}
//释放空间
free(p);
p = NULL;
return 0;
} #include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[1001] = { 0 };
int m = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &m);
arr[m] = m;
}
for (int i = 0; i <= 1000; i++)
{
if (arr[i] != 0)
{
printf("%d ", arr[i]);
}
}
return 0;
} #include <stdio.h>
#include <stdlib.h>
int main() {
int a, b, tmp;
int n, size = 0;
int* arr = NULL;
//申请n个字节动态空间
while (arr == NULL)
{
scanf("%d", &n);
arr = (int*)malloc(n * sizeof(int));
}
//输入数据,重复的不进行储存
for (a = 0; a < n; a++)
{
scanf("%d", arr + size);
size++;
for (int i = 0; i < size-1; i++)
{
if (*(arr + size-1) == *(arr + i))
{
size--;
break;
}
}
}
//进行排序
for (a = 0; a < size-1; a++)
{
for (b = 0; b < size - a - 1; b++)
{
if (*(arr + b) > *(arr + b + 1))
{
tmp = *(arr + b);
*(arr + b) = *(arr + b + 1);
*(arr + b + 1) = tmp;
}
}
}
for (a = 0; a < size; a++)
{
printf("%d ", *(arr + a));
}
return 0;
}
#include <stdio.h>
void bubble_sort(int arr[], int sz)//整型冒泡升序
{
int i = 0;
int j = 0;
int tmp = 0;
int flag = 1;
for (i = 0; i < sz - 1; i++)
{
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = 0;
}
}
if (flag == 1)
{
break;
}
}
}
int main()
{
//输入
int n = 0;
int arr[1000] = {0};
scanf("%d", &n);
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
//升序
bubble_sort(arr, n);
//不重复输出
printf("%d ", arr[0]);
for(i = 1; i < n; i++)
{
if (arr[i] != arr[i - 1])
{
printf("%d ", arr[i]);
}
}
return 0;
} #include<stdio.h>
int main()
{
int n = 0;
scanf("%d",&n);
int arr[1001] = {0};
int i = 0;
int tmp = 0;
for(i = 0;i<n;i++)
{
scanf("%d",&tmp);
arr[tmp] = tmp;
}
for(i = 0;i<1001;i++)
{
if(arr[i])
printf("%d ",arr[i]);
}
return 0;
} #include<stdio.h>
int main(void)
{
int i,j,n;
int flag,t,num[1000],k=0;
scanf("%d",&n);
for(i=0;i<n;i++)//去重操作
{
flag=1;
scanf("%d",&t);
for(j=0;j<k;j++)//遍历已形成的数组
{
if(t==num[j])
{
flag=0;
break;
}
}
if(flag==1){//不存在此数则将其输入数组
num[k]=t;
k++;
}
}
int min,temp;
for(i=0;i<k-1;i++)//选择排序
{
min=i;
for(j=i+1;j<k;j++)
{
if(num[j]<num[min])
{
min=j;
}
}
if(min!=i)
{
temp=num[i];
num[i]=num[min];
num[min]=temp;
}
}
for(i=0;i<k;i++)//遍历输出
{
printf("%d ",num[i]);
}
return 0;
} int main()
{
int n = 0;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}//冒泡排序好
for (int i = 0; i < n - 1; i++)
{
if (arr[i] == arr[i + 1])//查重
{
for (int j = i; j < n - 1; j++)
{
arr[j] = arr[j + 1];//移位
}
i--;
n--;//防止三个以上个连续的数字无法删除
}
}
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
#include<stdio.h>
void sort(int a[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
int temp = a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
int main(){
int i,n,a[100]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d ",&a[i]);
}
sort(a,n);
for(i=0;i<n-1;i++)
{
if(a[i]!=a[i+1])
printf("%d ",a[i]);
}
printf("%d",a[n-1]);
return 0;
}
#include <stdio.h>
#define N 100
int main()
{
int n;
scanf("%d", &n);
int arr[N];
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
for (int j = 0; j < n-1; j++)
{
if (arr[j] == -1)
continue;
for (int k = j+1; k < n; k++)
{
if (arr[j] == arr[k])
{
arr[k] = -1;
}
}
}
for (int i = 0; i < n-1; i++)
{
if (arr[i] == -1)
continue;
for (int j = 0; j < n-1; j++)
{
if (arr[j] > arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < n; i++)
{
if (arr[i] != -1)
printf("%d ", arr[i]);
}
printf("\n");
return 0;
} #include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int arr[10000]={0};
int m;
while(~scanf("%d",&m)){
arr[m]=m;
}
for(int i=0;i<10000;i++){
if(arr[i]!=0){
printf("%d ",arr[i]);
}
}
return 0;
}