#define SIZE 1001
int main(void)
{
int number[SIZE] = {0}, n, j, m, maxn = 0;
///////////////////////////////////////////
// yao shu ru de sui ji shu de ge shu //
scanf("%d", &n);
/////////////////////////////////////////////////////////////////////////////
// du qu shu ru de shu ji shu bing tong ji bu tong de sui ji shu de ge shu //
int i;
for (i = 0; i < n; i++) {
scanf("%d", &m);
number[m]++;
if (number[m] == 1) /////////////////////////////////////////////////
j++; // tong ji bu tong de sui ji shu de ge shu //////
maxn = (maxn > m) ? maxn : m; // ji lu zui da de na ge sui ji shu //
}
printf("%d\n", j); // shu chu bu tong de sui ji shu de ge shu /////////
///////////////////////////////////
// an shun xu shu chu sui ji shu //
for (i = 0; i <= maxn; i++) {
if (number[i] != 0)
printf("%d ", i);
}
return 0;
}
因为数组下标本来就是按从小到大的顺序排好的,所以省去了对随机数排序的工作。
只需在读取某个数值是对相应的数组下标number[m]++就好了。
统计不同的随机数也很简单,只需统计有多少个number[i]值为1的元素就好。