お題:
①プログラム実行中に2つの”小数点を持った実数値”の入力を受け付け、その実数値の足し算、引き算、掛け算、割り算の計算結果を表示する。
②”1/7”の計算結果を小数点以下3桁まで計算して表示させる。
以上の①、②を実行するプログラムを作成せよ。
プログラム実行表示例
2つの”小数点を持った実数値”を入力してください。 x:(ここに入力) y:(ここに入力) x + y = x – y = x * y = x / y = 1 / 7 = |
必須文字列
・double
・scanf
・%l(エル)f
・%.3f
解答掲載までの期間は3日間です。それまでに各自プログラムを作成し、
・プログラム文
・プログラムをコンパイルした実行ファイル
をメールに添付するなり、紙に書いてポストに投函するなり、言葉で伝えるなり、いかなる方法をつかっても構わないので提出してください。
質問等はメールまたはコメントにて。
cosmo-cleaner@za.pial.jp
-----------------------------------------------------------
解答
解答例は以下の通りです
#include <stdio.h>
int main () {
double x,y;
printf("2つの小数点を持った実数値を入力してください。\n");
printf("x:"); scanf("%lf", &x);
printf("y:"); scanf("%lf", &y);
printf("x + y = %f \n",x+y);
printf("x - y = %f \n",x-y);
printf("x * y = %f \n",x*y);
printf("x / y = %f \n",x/y);
printf("1 / 7 = %.3f \n",1.0/7.0); //ここは1と7ではなく1.0と7.0にしないとダメ
return(0);
}
%lfは倍精度実数値といって、%fより精度が必要な時に使います。
たいていは使わないと思いますが、scanf()の場合は、%lfでないと、小数点以下の数を受け付けない(みたい)です。気になる人は実験してみてください。
1/7の計算をするときは、解答例のような書き方もありますが、この場合は小数点を含む実数を扱う%.3fに合わせて、1.0/7.0と計算式を入れなければなりません。しかし、島本君の解答にありましたが、このような書き方もあります。
printf("1 / 7 = %.3f\n" ,(double)1 / (double)7);
これは、1と7という整数を、double型に変換しています。書き方は、
(double) a //aは実数
このような変換はキャストと呼ばれ、()をキャスト演算子と言います。この方法を使えば、double型に変換されるので、小数点を含む実数を扱う%.3fにも対応できます。
解答早かった順位
1位 O氏
2位 島本
忙しいとは思いますが、こちらも時間さいて問題と解答作ってるので、頑張って講座に取り組んでください。質問があったらいつでも受け付けます。
質問、補足ありましたら、コメントまたはメールにて。
1 件のコメント:
解答が一人も来ないので、解答掲載を延期します。
質問があれば答えるので、
どんどん解答してください。
コメントを投稿