众数问题c语言编程,众数问题

#include

#include

#include

#define MIN 1 // 数字的最大值至少为1 (0无意义), 数字个数最小值

#define MAX 100 // 数字的最大值

#define ARRMAX 100 // 数字的最大个数

void arr_rand(int * p, int max, int size)

{

int i;

++max; // max = max + 1

for(i = 0; i < size; i++) //

p[i] = rand() % max; // 0 - max

}

void show(int * p, int size)

{

int i;

for(i = 0; i < size; i++)

{

printf("%3d ", p[i]);

if((i+1) % 8 == 0)

putchar('\n');

}

putchar('\n');

}

int plural(int * ar, int max, int size)

{

int i;

int t;

int plu;

++max;

int * p = (int *)malloc(sizeof(int *) * max); // 用于统计数字个数

for(i = 0; i < max; i++) // 初始化数组

p[i] = 0;

for(i = 0; i < size; i++) // 数字个数累积

p[ar[i]]++;

/* show(p, max); */

for(i = 0, t = 0; i < max; i++) // 取数组中最大数

if(p[i] > t)

{

t = p[i];

plu = i;

}

free(p);

return plu;

}

/******************* Main ********************/

int main(void)

{

int max;

int size;

int * p;

srand((unsigned int)time(NULL));

/* max 数字的范围 0 到 max */

/* size 是要生成的数字个数 */

while(scanf("%d %d", &max, &size) == 2

&& max >= MIN && max <= MAX

&& size >= MIN && size <= ARRMAX )

{

while(getchar() != '\n');

p = (int *)malloc(sizeof(int) * size);

arr_rand(p, max, size);

/* show(p, size); */

printf("%d\n", plural(p, max, size));

free(p);

}

puts("\nDone.");

return 0;

}

[此贴子已经被作者于2007-11-20 16:50:53编辑过]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值