4 もう少し役に立つプログラム例

scanfがあるとユーザーがデータを入力するのを,コンピューターは待っている.ユー ザーがデータを入力するのを忘れると,延々待つことになる.そこで,通常は,ユーザー にデータを入力するように促すメッセージを表示させる.教科書 []のp.49のリスト 2.12にその例が載っている.

ここでは,整数と実数を使ったもっと役に立つプログラムを示す.

4.1 整数

マラソンなどの競技では,「2時間9分46秒」とかかった時間を言う.これを,秒に変換す るプログラムを示す.
   1 #include <stdio.h>
   2 
   3 int main(void)
   4 {
   5  
   6   int h, m, s, total_sec;
   7 
   8   printf("時間を入力してください\t");
   9   scanf("%d",&h);
  10 
  11   printf("分を入力しください\t");
  12   scanf("%d",&m);
  13 
  14   printf("秒を入力してください\t");
  15   scanf("%d",&s);
  16 
  17   total_sec = 3600*h+60*m+s;
  18 
  19   printf("トータル,%d秒です.\n",total_sec);
  20 
  21   return 0;
  22 }
\fbox{結果}
時間を入力してください  2
分を入力しください      9
秒を入力してください    46
トータル,7786秒です.

4.2 実数

ある抵抗に流れている電流$ I$との両端の電圧$ V$が分かったとする.抵抗の値$ R$と発熱 量$ P$を計算したい.発熱量と抵抗は,

  $\displaystyle R=\frac{V}{I}$   $\displaystyle P=IV$   (1)

から計算できる.プログラムでの計算をリスト4にしめす.ここで計算している値は 実数なので,プログラムでも実数として取り扱っていることに注意せよ.
   1 #include <stdio.h>
   2 
   3 int main(void)
   4 {
   5  
   6   double I, V, R, P;
   7 
   8   printf("電流を入力してください\t");
   9   scanf("%lf",&I);
  10 
  11   printf("電圧を入力しください\t");
  12   scanf("%lf",&V);
  13 
  14   R=V/I;
  15   P=I*V;
  16 
  17   printf("抵抗は,%fオームです.\n",R);
  18   printf("発熱は,%fワットです.\n",P);
  19 
  20   return 0;
  21 }
\fbox{結果}
電流を入力してください  123.456
電圧を入力しください    3.268
抵抗は,0.026471オームです.
発熱は,403.454208ワットです.



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成18年5月24日


no counter