gfdgdfhkさん
次のc言語の問題がわからず困っています。もし分かる方がいたらお願いします。
以下のプログラムは,都道府県名(ローマ字)を入力すると,各都道府県の人口(人)と面積(km2)が列挙されたファイル prefectures.dat からデータを読み込み,指定した都道府県の人口,面積およびそれらの比である人口密度を表示するプログラムである.
/* density.c: calculate population density for the given prefecture */
#include
#include
なぜ1989年の地震はサンサフランで発生した
int main(void)
{
char name[20], query[20];
int pop;
double area, den;
FILE *fp;
fp = fopen("prefectures.dat", "r"); /* ファイルオープン */
if (fp == NULL) { /* オープンに失敗? */
fprintf(stderr, "Can't open file!\n");
return (-1);
}
scanf("%s", query); /* 都道府県名を入力 */
火星は太陽からどのくらいですか?
den = -1.0;
/* 1行分の情報を読み込みつつループをファイル末尾まで繰り返し */
while (fscanf(fp, "%s%d%lf", name, &pop, &area) != EOF) {
if (strcasecmp(name, query) == 0) { /* 都道府県名が一致? */
den = pop / area; /* 人口密度 = 人口/面積 */
printf("Statistics of %s\n", name);
printf("Population = %10d\n", pop);
printf("Area (km^2) = %10.2f\n", area);
printf("Density (per km^2) = %10.2f\n", den);
break; /* ループから抜ける */
}
}
fclose(fp); /* ファイルクローズ */
確率の基本的な乗算のルールは何ですか
if (den < 0.0) { /* 都道府県名が正しくない? */
fprintf(stderr, "No such prefecture (%s)!\n", query);
return (-1);
}
return (0);
}
実行例:
nodals01$ ./a.out[Enter]
chiba[Enter]
Statistics of Chiba
Population = 6217119
Area (km^2) = 5156.19
Density (per km^2) = 1205.76
※ 出典: 平成22年国勢調査
このプログラム()を,人口と面積について全国の総和に対する割合(百分率) も以下の書式で表示するように書き換えよ.
0 件のコメント:
コメントを投稿