K&R 演習1-15 解答 (プログラミング言語C 第2版)

スポンサーリンク

鍛錬 172

K&R 演習1-15 解答 (プログラミング言語C 第2版)

「1.2 節の温度換算プログラムを、変換のための関数を使うように書き直せ」という問題です。
 
プログラム

以下は、1.2 節の温度換算プログラムを、変換のための関数を使うように書き直したプログラム kr_1_15.c です。

// include
#include <stdio.h>

// prototype
float ConversionFahrToCelsius(float fahr);

// main
int main(void)
{
	float fahr;
	float celsius;
	int lower;
	int upper;
	int step;
	
	// 初期化
	lower = 0;
	upper = 300;
	step = 20;
	
	fahr = (float)lower;
	printf("  華氏 |   摂氏\n");
	printf("------------------\n");
	while (fahr <= upper) {
		// 摂氏を算出
		celsius = ConversionFahrToCelsius(fahr);
		
		printf("  %3.0f  |  %6.1f\n", fahr, celsius);
		
		// 華氏に加算し格納
		fahr = fahr + step;
	}
	
	return 0;
}

// =================================
// @brief     華氏を摂氏に変換する
// @param[in] fahr  華氏
// @return    result -> 摂氏
// @note      無し
// =================================
float ConversionFahrToCelsius(float fahr)
{
	float result;
	
	result = (float)((5.0 / 9.0) * (fahr - 32.0));
	
	return result;
}

 
実行結果

以下は、上記で示したプログラム kr_1_15.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra kr_1_15.c -o kr_1_15
***@ubuntu:~/***/test/c$ ./kr_1_15
  華氏 |   摂氏
------------------
    0  |   -17.8
   20  |    -6.7
   40  |     4.4
   60  |    15.6
   80  |    26.7
  100  |    37.8
  120  |    48.9
  140  |    60.0
  160  |    71.1
  180  |    82.2
  200  |    93.3
  220  |   104.4
  240  |   115.6
  260  |   126.7
  280  |   137.8
  300  |   148.9
タイトルとURLをコピーしました