2020/08/20

エド君と学ぶC講座2

今回の内容 四則演算 浮動小数点数




エド君「前回はほんとに基礎なことだったが今回は計算をうまく活用していこうと思うぞ。浮動小数点数とかも教えていく。まずは四則演算と余りの数を出す方法だ。」


#include<stdio.h>

int main(void) {
int x=30, y=9;
printf("x=%d,y=%d\n",x, y);
printf("x+y=%d\n", x + y);
printf("x-y=%d\n", x - y);
printf("x*y=%d\n", x * y);
printf("x/y=%d\n", x / y);
printf("x%%y=%d\n", x % y);

return 0;
}



エド君「足し引きはわかりやすいがかけ算は*、割り算は/を使う。余りはだが文章の中に%を入れたいときは2個並べる必要があるぞ。」

でもこれって単純なことだよな?
エド君「まあこれだけなら簡単だな。ただこの形だと割り算のときに整数しか出ない。もし小数点も出したかったらどうする?」
さっき言ってた浮動小数点数ってやつか?
エド君「それだ。例えばこんな式があったとしよう。」
21÷2
エド君「これを11.5で出したいが今のだと11としか出ない。そこでdoubleで小数点を出すわけだ。他にも平均値を出すときにも使いやすいな。そうだ。3つの数の平均を出すプログラムを作ってみろ。ヒントとして平均を出す式を教えてやる。」

(double)sum/3;

エド君「まあsumは合計の数値だ。こっちの式の作り方は流石にわかるよな?ちなみにだが式の前にdouble)と入れると答えが浮動小数点数になる。あとdoubleを使うときは%dじゃなくて%fになるからそこは注意しろ。」
なるほど…つまりはこうか!

#include<stdio.h> int main(void) { int x, y,z; int sum; double ave; printf("エド君「数字を3つ入力しろ。」\n"); printf("x="); scanf("%d", &x); printf("y="); scanf("%d", &y); printf("z="); scanf("%d", &z); sum = x + y + z; ave= (double)sum / 3; printf("エド君「合計は%dで平均は%fだ。」\n", sum,ave); return 0; }


エド君「オレの台詞になってるのが謎だがまあそんなところだな。」
でもなんか小数点の数多いなあ。これ2桁くらいにできないのかね?
エド君「ああ、それなら%.1f%.2fとかで調整できるぞ。」
なるほど。
エド君「短いが今回はここまでにするか。」
次のやつ難しい感じ?
エド君「いや、難しいというよりやることがだいぶ変わってくるからな。分けた方が良いと思っただけだ。あれこれ言っても混乱するだろ。」