题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <math.h>
#include <stdio.h>
int main() {
int a[2000] = {0}, x[2000];
int N, i, j, n, tmp;
scanf("%d", &N);//输入个数N
for(i = 0;i < N; i++){
scanf("%d", &a[i]);//构建N个数据的数组a[]
}
for(i = 0;i < N; i++)
for (j = i + 1; j < N ; j++) //将重复的元素归0
{
if(a[i] == a[j])
{
a[j] = 0;
}
}
j = 0;
for (i = 0; i < N; i++) {
if(a[i] != 0)//把a[]中的非0元素一个个放到x[]中
{
x[j] = a[i];
j++;
}
}
i = 0;
n = 0;
while (x[i] != 0) {//计算x[]中有多少个元素,主要减少运算量
n++;
i++;
}
for (i = 0; i < n; i++)
for (j = 0; j < n - i - 1; j++) {//气泡排序法
if(x[j] > x[j+1] )
{
tmp = x[j];
x[j] = x[j+1];
x[j+1] = tmp;
}
}
for(i = 0; i < n; i++)
printf("%d\n",x[i]);
return 0;
}
