面積 [km2] と人口 [人] の2つの値を標準入力して人口密度を計算し、結果を標準出力し、値の入力と表示は main 関数内で行い、人口密度の計算はユーザー関数内で行うようなプログラムを書きたいのですが、ここで求める**人口密度の値は実数で、小数以下第1位まで標準出力するようにしたいのです。
**
実行例
% a.out
人口密度の計算をします。
人口は?[人]:
8840086
面積は?[km^2]:
1905
人口は8840086[人]
面積は1905[km^2]
人口密度は4640.5[人/km^2]です。
しかし、私のプログラム(↓)
C
1#include <stdio.h> 2 3int population_density(int h,int a) 4{ 5 double jm; 6 printf("人口は%d[人]\n",h); 7 printf("面積は%d[km^2]\n",a); 8 jm=h/a; 9 10 return jm; 11} 12 13 14int main(void) 15{ 16 int human_value,area_value; 17 double j_density; 18 printf("人口密度の計算をします。\n"); 19 20 printf("人口は?[人]:\n"); 21 scanf("%d",&human_value); 22 23 printf("面積は?[km^2]:\n"); 24 scanf("%d",&area_value); 25 26 j_density=population_density(human_value,area_value); 27 28 printf("人口密度は%lf[人/km^2]です。\n",j_density); 29 30 return 0; 31} 32 33
これで実行すると、
$ ./a.out
人口密度の計算をします。
人口は?[人]:
8840086
面積は?[km^2]:
1905
人口は8840086[人]
面積は1905[km^2]
人口密度は4640.000000[人/km^2]です。
となり、
・計算結果(人口密度)が合わない。
・小数以下第1位まで標準出力できていない。
この2点の問題が発生します。。
どこがおかしいのか、どう書けばよいのか。。
教えてください、よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー