ALGO-39_蓝桥杯_算法训练_数组排序去重

本文介绍了一种通过输入10个整数并进行升序排序及去除重复元素的方法。利用C语言实现,该算法首先检查每个输入的整数是否已存在于数组中,如果存在则忽略该数;否则将其加入数组。最后对数组进行排序并输出每个唯一元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述
  输入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 }

 

转载于:https://www.cnblogs.com/mind000761/p/8900740.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值