P1059 明明的随机数-C语言
1、题目
2、解题过程
结果:
//洛谷 P1059 明明的随机数
#include <stdio.h>
#define NUM 100 //初始随机数的最大数目
int main()
{
int n;//表示初始随机数的数目 N<=100
int m=0;//表示不同随机数的数目-1
int random[NUM];//初始随机数
int random_new[NUM];//不同随机数
int i,j;
int temp;//用于排序时的临时值
int k;//不同随机数的数量
scanf("%d", &n);
scanf("%d", &random[0]);
random_new[m] = random[0];
for (i = 1; i < n; i++) {
scanf("%d", &random[i]);
for (j = 0; j < i; j++) {
if (random[i] == random[j]) {
break;
}
}
if (j == i) {
m++;
random_new[m] = random[i];
}
}
k = m + 1;//方便理解
//冒泡排序 从小到大
for (i = 0; i < k; i++) {//要对k个数进行k-1轮冒泡排序
for (j = 0; j < k-i-1; j++) {
if (random_new[j] > random_new[j+1]) {//交换
temp = random_new[j];
random_new[j] = random_new[j+1];
random_new[j+1] = temp;
}
}
}
printf("%d\n", m + 1);
for (i = 0; i < m + 1; i++) {
printf("%d ", random_new[i]);
}
return 0;
}