<分区>
我需要一个小程序:
- 读取自然数n
- 然后读取n个实数r0,r1,r2,...,rn
- 然后读取另一个实数x
然后打印 x 相对于数字 r0,r1,r2,...,rn 的百分位大小
#include<stdio.h>
int main(){
int n, i=0;
double r[1000], x;
printf("Enter how many numbers\n");
scanf("%i", &n);
printf("Enter numbers\n");
while(i<n){
scanf("%lf", &r[i]);
i++;
}
printf("Enter x:\n");
scanf("%lf", &x);
// need part here
// where percentiles are calculated
}
所以这是我的问题,我到底该如何计算百分位数?我已经阅读了很多关于百分位数的文章,但我仍然不明白,所以也许有人会向我解释我需要做什么,或者只是告诉我一个如何计算百分位数的模式。我懂一点 C 语言,所以如果有人向我解释我如何计算百分位数,我可以自己写 ;o
附言关于维基百科的百分位数
在统计学中,百分位数(或百分位数)是低于该变量的值 一定百分比的观察结果下降。例如,第 20 个百分位数是下面的值(或分数)其中 20% 的观察结果可能被发现。第 25 个百分位数也称为第一四分位数 (Q1),第 50 个百分位数称为中位数或第二个四分位数 (Q2),第 75 个百分位数称为第三个四分位数 (Q3)。
编辑:好的一切正常(我认为),但我还有 1 个问题:我的代码看起来是这样的
#include<stdio.h>
void sortowanie( double r[1000], int n){
int i,j;
double temp;
for(i=0; i<n; i++)
for(j=0;j<n-1; j++){
if (r[j]>r[j+1]){
temp=r[j+1];
r[j+1]=r[j];
r[j]=temp;
}
}
}
int centyl(double x, int n){
int temp, wynik;
temp=n-x;
wynik=100*temp/n;
return wynik;
}
int main(){
int n, i=0;
double r[1000], x;
printf("Enter how many numbers\n");
scanf("%i", &n);
printf("Enter numbers\n");
while(i<n){
scanf("%lf", &r[i]);
i++;
}
printf("Enter x:\n");
scanf("%lf", &x);
sortowanie(r, n);
printf("Centyl to %i\n", centyl(x, n) );
return 0;
}
并且想知道我可以采取什么保护措施来不破坏该程序?我可以在这里做任何保护吗?
我是一名优秀的程序员,十分优秀!