ショッピングモール  Operating Systems / Microsoft ( Windows - General )


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.5226

中央値について
投稿者---せり(2006/01/05 02:02:31)


n個のデータを入力して、最大と最小はでるのですが、中央値がわかりません。nは100までとする。
#include <stdio.h>

main()
{
int n,m,i,j,work;
int x[100];
float med;

printf("何個のデータ(1〜100)を入力しますか?---",n);
scanf("%d",&n);

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


for(i=0; i<n-1; i++){
for(j=i+1; j<n; j++){
if(data[i]<data[j]){
work=data[i];
data[i]=data[j];
data[j]=work;
}
}
}

m = n/2;
if([ 5 ]){
med=(float)[ 6 ];
}
else{
med = (float)[ 7 ];
}

printf("\n***結 果 ***\n");
printf("データの最大値= %d \n",x[0]);
printf("データの最小値= %d \n",x[n-1]);
printf("データの中央値= %5.1f\n",med);
}


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:中央値について 5227 Blue 2006/01/05 02:10:28
<子記事> Re:中央値について 5228 まきじ 2006/01/05 02:14:24


No.5227

Re:中央値について
投稿者---Blue(2006/01/05 02:10:28)


> if([ 5 ]){
> med=(float)[ 6 ];
> }
> else{
> med = (float)[ 7 ];
> }
C言語の理解が出来ていないようですが。
ここのソースは後から考えて付け足したものでしょうか?
# だったらそのように解説すべき。

まずは、掲示板利用規則を読んでください。
守られていないことが、あると思いますので。

それと、名前を変えて投稿されてもわかる人には同一人物ということがわかりますので気をつけてください。



この投稿にコメントする

削除パスワード

No.5228

Re:中央値について
投稿者---まきじ(2006/01/05 02:14:24)


>int x[100];
>for(i=0; i<n-1; i++){
>   for(j=i+1; j<n; j++){
>      if(data[i]<data[j]){
>         work=data[i];
>         data[i]=data[j];
>         data[j]=work;
>      } 
>   } 
>} 

data ではなくx の間違いでは?

>m = n/2;
>printf("データの中央値= %5.1f\n",med);

ソートしてるのですから、配列の真ん中(x[n/2])の値が
中央値になりませんか?



この投稿にコメントする

削除パスワード

No.5229

Re:中央値について
投稿者---iijima(2006/01/05 12:05:33)


> ソートしてるのですから、配列の真ん中(x[n/2])の値が
> 中央値になりませんか?

勝手に補足:
統計学上の中央値の定義からすれば、
・nが奇数の場合:x[n/2]
・nが偶数の場合:x[n/2-1]とx[n/2]の平均値
が正確です。

# くどいようですが「掲示板利用宣言」を遵守してください。
# 仏の顔もナントカってあるでしょ?



この投稿にコメントする

削除パスワード

No.5230

Re:中央値について
投稿者---wiz(2006/01/05 14:46:49)


m = n/2;
if([ 5 ]){
    med=(float)[ 6 ]; 
}
else{
    med = (float)[ 7 ];
} 

もしかしてここでiijimaさんがおっしゃってる
・nが奇数の場合:x[n/2]
・nが偶数の場合:x[n/2-1]とx[n/2]の平均値
をやろうとしている?
もしそうなら偶数か奇数かを判断するなら
n/2 ではなく n%2 にするとかとか

#[ 5 ][ 6 ][ 7 ]とかは、もしかして
#課題の問題そのままとかでは。。。?



この投稿にコメントする

削除パスワード

No.5231

Re:中央値について
投稿者---まきじ(2006/01/05 15:02:08)


>・nが偶数の場合:x[n/2-1]とx[n/2]の平均値

結局 (n - 1) / 2 と同じ事ですよね?

3 : 3 / 2 = 1
4 : (4 / 2 + (4 / 2 - 1)) / 2 = (2 + 1) / 2 = 3 / 2 = 1
5 : 5 / 2 = 2
6 : (6 / 2 + (6 / 2 - 1)) / 2 = (3 + 2) / 2 = 5 / 2 = 2
7 : 7 / 2 = 3
8 : (8 / 2 + (8 / 2 - 1)) / 2 = (4 + 3) / 2 = 7 / 2 = 3
9 : 9 / 2 = 4
10 : (10 / 2 + (10 / 2 - 1)) / 2 = (5 + 4) / 2 = 9 / 2 = 4


この投稿にコメントする

削除パスワード

No.5232

Re:中央値について
投稿者---とおり(2006/01/05 15:18:17)


>結局 (n - 1) / 2 と同じ事ですよね?

"index"の平均値じゃなくて、"値"の平均値でしょ?


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity