一、题目
描述
明明生成了n个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
数据范围
1 <= n <=1000
输入的数字大小满足 1<= val <= 500
输入
第一行先输入随机整数的个数n。接下来的n行每行输入一个整数,代表明明生成的随机数
输出
输出多行,表示输入数据处理后的结果
二、自己的解题思路
1、读取n,创建大小为n的数组
2、读取数据,将数据存储到数组中
3、找到数组中的最小值,打印最小值,将数组中所有和最小值相等的元素都置为501(1<=val<=500)
4、重复第3步n次
三、自己写的代码
不得不说,自己写的这代码实在是太简洁优美了
#include<stdio.h>
int main() {
int n, i = 0, j = 0, min;
scanf("%d", &n);
int nums[n];
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
for (i = 0; i < n; i++) {
min = 501;
for (j = 0; j < n; j++) {
if (nums[j] < min) {
min = nums[j];
}
}
if (min < 501) {
printf("%d\n", min);
for (j = 0; j < n; j++) {
if (nums[j] == min) {
nums[j] = 501;
}
}
}
}
return 0;
}
四、测试
输入
3
2
2
1
输出
1
2