读书人

一个算法

发布时间: 2012-03-23 12:06:21 作者: rapoo

请教高手一个算法
任意长度的int数组,取出这个数组中第95%个元素的值。比如有100个数,那么取出第95个元素的值。
任意长度不知该怎么实现。
函数的接口类似于以下:

int rate_95(int *p[])
{}

函数要返回第95%个元素的值

求教高手!!!

[解决办法]

C/C++ code
arr[sizeof(arr)/sizeof(int) * 100 / 95]
[解决办法]
C/C++ code
int rate_95(int *p, int len){    int n = 0.95 * len;    return p[n-1];}
[解决办法]
探讨

麻烦再具体点吧,没看懂数组的任意长度该怎么实现?

引用:

C/C++ code
arr[sizeof(arr)/sizeof(int) * 100 / 95]

[解决办法]
探讨

引用:

引用:
友情提示:这个不是4,O(∩_∩)O~

那敢问楼上,sizeof一个指针是多少?一般的?32位机

嗯 是4. 刚才要去吃饭写太快,没考虑..

[解决办法]
探讨

引用:

引用:

引用:
友情提示:这个不是4,O(∩_∩)O~

那敢问楼上,sizeof一个指针是多少?一般的?32位机

嗯 是4. 刚才要去吃饭写太快,没考虑..


C/C++ code

template <class T>
i……

[解决办法]
探讨

我是想引用:
楼主想干什么?int rate_95(int *p[])//你这个int *p[]十个int型指针数组。。。
首先我想了解,你调用这个rate_95这个函数的参数是什么类型的?

[解决办法]
int rate_95(int *p[])
{
int len=0;
int num=0;
while(*p!=NULL)
len++;

num=p[len/100/95];
return num;

}




[解决办法]
探讨
C/C++ code

arr[sizeof(arr)/sizeof(int) * 100 / 95]

[解决办法]
接口定义:int rate_95(int *p[], int iArrSize)
使用:rate_95(pInputArr,sizeof(pInputArr)/sizeof(pInputArr))

函数实现:
int rate_95(int *p[], int iArrSize)
{
if (p!=0)
{
return *(p+((int)(iArrSize * 100 / 95)));
}
else
{
return 0xFFFF; //error;
}
}
[解决办法]
探讨
还有一个是动态数组的问题该怎么实现?比如,每次输入的int数据长度都不一样,该如何存储?

引用:

接口定义:int rate_95(int *p[], int iArrSize)
使用:rate_95(pInputArr,sizeof(pInputArr)/sizeof(pInputArr))

函数实现:
int rate_95(int *p[……

[解决办法]
C/C++ code
#include <stdio.h>int main(){    int num = 0;    int index = 0;    int count = 0;    while (true) {        int number = 0;        scanf("%d", &number);        if (number < 0) {            break;        }        ++count;        if ((int)(count * 0.95) >= index + 1) {            index = count;            num = number;        }    }    printf("count = %d, index = %d, num = %d\r\n", count, index, num);    return 0;} 

读书人网 >C语言

热点推荐