[c言語] 初心者必見!int型、double型について丁寧に説明していきます。

C言語

どうもこんにちは! 今日も丁寧に説明していきたいと思いますので、よろしくお願いします。

相加平均の算出

これから表示するサンプルプログラムはわざと間違えてあります。どこか当ててみてください!

#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型の変数になるので、こちらも時間があったらやってみてください。

以上で終了となります。少し長かったと思いますが、最後までありがとうございました。

コメント

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