次のような小さなプログラムが必要です。
- 自然数nを読む
- n 実数 r0,r1,r2,...,rn を読み取ります
- 次に、別の実数 x を読み取ります
次に、数値 r0、r1、r2、...、rn に対するパーセンタイルで x のサイズを出力します。
#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
ウィキペディアのパーセンタイルに関するPS
統計では、パーセンタイル (またはセンタイル) は、観測値の特定の割合がそれを下回る変数の値です。たとえば、20 パーセンタイルは、観測値の 20% が検出される可能性がある値 (またはスコア) です。25 パーセンタイルは第 1 四分位 (Q1)、50 パーセンタイルは中央値または第 2 四分位 (Q2)、75 パーセンタイルは第 3 四分位 (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;
}
そして、そのプログラムを壊さないようにするにはどうすればよいか知りたいですか? ここで私ができる保護はありますか?