您的位置:首页 > 其它

空间换时间小例子(1)

2017-07-27 10:43 190 查看
/*: 

    在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次;找出出现次数最多的数字。
输入 一个1-1000的数N; 表示数组长度

接下来输入N个数

输出出现次数最多的数字

*/

#include <stdio.h>
#include <stdlib.h>

void search(int a[], int len)
{
int array[1000] = {0};
int i = 0;
int max = 0;

for(i=0; i<len; i++)
{
int index = a[i] - 1;

array[index]++;
}

for(i=0; i<1000; i++)
{
if( max < array[i] )
{
max = array[i];
}
}

for(i=0; i<1000; i++)
{
if( max == array[i] )
{
printf("%d\n", i+1);
}
}
}

int main()
{
int *p = NULL;
int n;
int i = 0;

scanf("%d\n", &n);

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

for(i = 0; i < n; i++)
{
scanf("%d", &p[i]);
}

search(p, n);

free(p);
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息