WooKinson

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
问题描述
  输入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 }

 

posted on 2018-04-21 13:28  WooKinson  阅读(224)  评论(0编辑  收藏  举报