考える事をやめられない

こんにちは。
わたしは、考える事をやめられません。
考える事が好きなんだと思います。
自分では「考えている」場面でも、他人からみると、普通にお茶を飲んでいるようにしか見えないところも「考える」ことの魅力ですね。


一度考え出すと、他には何か方法がないだろうかといつまでも考えてしまいます。
でも、決して頭がいい訳でもないので、他人からするととてもクダラナイ考えにおちつくのですが、それでも考える事をやめることはできないのです。
昨日もクロネコヤマトの宅急便料金を求めるプログラムを学生に出したのですが、ここでもいろいろな答えを考えてしまいました。

宅急便の規定のサイズの金額を計算する
サイズは、60/80/100/120/140/160サイズまで
金額はそれに応じ、740円/950円/1160円/1370円/1580円/1790円

最初に考えたプログラム


#include
int main(void)
{
int size, kingaku;
printf(“サイズ(60/80/100/120/140/160)はいくつでしょう: “);
scanf(“%d”, &size);
if (size == 60){
kingaku = 740;
}
else if(size == 80){
kingaku = 950;
}
else if(size == 100){
kingaku = 1160;
}
else if(size == 120){
kingaku = 1370;
}
else if(size == 140){
kingaku = 1580;
}
else if(size == 160){
kingaku = 1790;
}
else{
return 1;
}
printf(“金額は%d円になります\n”, kingaku);
return 0;
}


次に考えたのは、ある学生が「if文なしでやってみる」といったので料金の差分を考慮して考えました。
サイズが20ずつあがるにつれ、料金は740円を基準として210円ずつあがっていきます。


#include
#include
int main(void)
{
char s_size[256];
int size, kingaku;
do {
puts(“サイズ(60/80/100/120/140/160)はいくつでしょう”);
fgets(s_size, 256, stdin);
size = atoi(s_size);
} while (size 160 || (size%20)!=0 );
kingaku = 740 + (size – 60)*10.5;
printf(“金額は%d円になります\n”, kingaku);
return 0;
}


とまらないプログラムにするために、fgetsなどを使っています。
ポイントは、

kingaku = 740 + (size – 60)*10.5;

の部分です。この式のような法則がクロネコヤマトの宅急便の料金にあることがわかりました。

} while (size 160 || (size%20)!=0 );

の部分なども60から160の範囲のサイズでなおかつ20ずつの増分した値を得るのに有効です。
考えることは面白いです。

コメント

  1. まんたった より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    C言語ですか

タイトルとURLをコピーしました