问题描述 输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。 输入格式 10个整数。 输出格式 多行输出,每行一个元素。 样例输入 2 2 3 3 1 1 5 5 5 5 样例输出 1 2 3 5
解题思路:
若输入的数字存在数组中,剔除,否则存储
按从小到大的顺序排序,并输出
AC代码:
1 #include <stdio.h> 2 #define MAX 10 3 4 int main(void) 5 { 6 int i = 0 , j = 0 , k = 0; 7 int arr[MAX+1]; 8 for (k = 0 ; k < MAX ; k ++) 9 { 10 scanf("%d",&arr[i++]); 11 for (j = i-2 ; j >= 0 ; j --) 12 { 13 if (arr[j] == arr[i-1]) 14 { 15 i --; 16 break; 17 } 18 } 19 } 20 21 /*排序*/ 22 for (j = 0 ; j < i ; j ++) 23 { 24 for (k = j+1 ; k < i ; k ++) 25 { 26 if (arr[k] < arr[j]) 27 { 28 arr[j] = arr[j] ^ arr[k]; 29 arr[k] = arr[j] ^ arr[k]; 30 arr[j] = arr[j] ^ arr[k]; 31 } 32 } 33 printf("%d\n",arr[j]); 34 } 35 return 0; 36 }