どうもこんにちは! 今日も丁寧に説明していきたいと思いますので、よろしくお願いします。
相加平均の算出
これから表示するサンプルプログラムはわざと間違えてあります。どこか当ててみてください!
#include <stdio.h>
int main(void)
{
int a,b;
printf("整数a: "); scanf("%d",&a);
printf("整数b: "); scanf("%d",&b);
printf("平均値: %d\n",(a+b)/2);
return 0;
}
/*実行結果
整数a: 4
整数b: 5
平均値: 4
*/
平均値が4になっていますね。
前回の投稿で整数同士の除法では、商は「小数点以下を切り捨てた整数部」だけが得られると書きました。忘れた方はhttps://www.toaru-language-mk.info/c%e8%a8%80%e8%aa%9e%e5%9b%9b%e5%89%87%e6%bc%94%e7%ae%97%e3%81%a8%e5%89%b0%e4%bd%99%e6%bc%94%e7%ae%97-2/を再度見て復習してみてください。
これから正しいサンプルプログラムを見せたいと思います。
#include <stdio.h>
int main(void)
{
double a,b;
printf("整数a: "); scanf("%lf",&a);
printf("整数b: "); scanf("%lf",&b);
printf("平均値: %f\n",(a+b)/2);
return 0;
}
/*実行結果
整数a: 5
整数b: 4
平均値: 4.500000
*/
しっかり平均値が4.5になりましたね。
この二つのプログラムの違いは変数の宣言がint型か
double型の違いがあります。
double型は初めて登場するので、説明していきます。
double型とは?
- 実数を浮動小数点数で表現する型の一つ。
- 浮動小数点数は、符号部、指数部、仮数部から構成される。
- 表現できる実数
ー絶対値最大 1.0*10^308
ー最小絶対値 1.0*10^-308
double型変数の変数指定
double型 | int型 | |
出力 | printf(%f) | printf(%d) |
入力 | scanf(%lf) | scanf(%d) |
対応表は上記の通りです。必ず覚えてください。
特にdouble型は間違える人がとても多いので、注意してください。
型と演算
- 同じ型どうし
int/int=int
double/double=double
- 異なる型どうし
int/double=double
double/int=double
これはすぐ理解できると思うので、説明は以上になります。
暗黙の型変換
あとひとつ、型変換の方法があるので、それを紹介して終わりとなります。
#include <stdio.h>
int main(void)
{
int a,b;
printf("整数a: "); scanf("%d",&a);
printf("整数b: "); scanf("%d",&b);
printf("平均値: %f\n",(double)(a+b)/2);
return 0;
}
/*実行結果
整数a: 5
整数b: 4
平均値: 4.500000
*/
サンプルコード見てわかるように変数の横に(double)のようにつけてやるとdouble型の変数になるので、こちらも時間があったらやってみてください。
以上で終了となります。少し長かったと思いますが、最後までありがとうございました。
コメント