讨论 / C 的另一种实现方法。
每日一题 2018-02-09 13:00:53
点我顶贴 收藏 删除
#include <stdio.h>

#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;

}

#1 每日一题@2018-02-09 13:03:50
回复 删除
用数组下标来代表某一个输入的随机数。

因为数组下标本来就是按从小到大的顺序排好的,所以省去了对随机数排序的工作。

只需在读取某个数值是对相应的数组下标number[m]++就好了。

统计不同的随机数也很简单,只需统计有多少个number[i]值为1的元素就好。

查看更多回复
提交回复