C言語関係掲示板

過去ログ

No.561.xを入力してyの範囲ならnを出力する。if,for,while,switch、三項演算子は使えない。

[戻る] [ホームページ]
No.5077

わかりません。pert2
投稿者---hikaru(2003/02/08 14:30:24)
http://www2.realint.com/cgi-bin/tcont.cgi?pointc


xを入力してyの範囲ならnを出力する。if,for,while,switch、三項演算子は使えない。
どうしてもわかりません。教えてください。
 yの値  nの値
0.00〜0.07 = 5
0.08〜0.11 = 7
0.12〜0.13 = 6
0.14〜0.19 = 0
0.20 = 2
0.21〜0.29 = 3
0.30〜0.33 = 1
0.34〜0.36 = 4
0.37〜0.41 = 6
0.42 = 8
0.43〜0.55 = 3
0.56 = 9
0.57〜0.60 = 8
0.61〜0.64 = 5
0.65〜0.72 = 7
0.73〜0.79 = 2
0.80〜0.83 = 0
0.84 = 9
0.85〜0.96 = 1
0.97〜1.00 = 9


No.5089

xを入力してyの範囲ならnを出力する。if,for,while,switch、三項演算子は使えない。(「掲示板ご利用上の注意」は読みました?)
投稿者---kikk(2003/02/08 17:05:38)


ども。


>> yの値  nの値
>>0.00〜0.07 = 5
>>0.08〜0.11 = 7

>>0.85〜0.96 = 1
>>0.97〜1.00 = 9

3つくらい方法があります。その他の制約にあわせて選択してください。

1. 多項式にする
(0.00<=x&&x<=0.07)*5 + (0.08<=x&&x<=0.11)*7 + /*以下略*/

2. テーブル化
int n[1+100]={
5,5,5,5,5,5,5,5,
7,7,7,7,
/*以下略*/
};
として
n[(int)(x*100.0)]

3. テーブル化その2
範囲と値を保持する構造体を用意し初期化した後、qsort()とbsearch()を使って、
/*以下略*/


では。

No.5105

配列
投稿者---hikaru(2003/02/09 14:54:46)
http://www2.realint.com/cgi-bin/tcont.cgi?pointc


ありがとうございます。
配列を使う方法も教えていただけませんか。
何度もすいませんがお願いします。