1.7 関数, 1.8 引数, 演習1-15 K&R プログラミング言語C
2009年12月02日
1.7 関数
演習1-15
#include <stdio.h> #define LOWER_TEMP 0 #define UPPER_TEMP 300 #define STEP_TEMP 20 float fahr2celsius(float fahr); float celsius2fahr(float celsius); int main(int argc, char *argv[]) { float fahr, celsius; fahr = LOWER_TEMP; printf("fahr\tcelsius\n"); while (fahr <= UPPER_TEMP) { printf("%3.0f %6.1f\n", fahr, fahr2celsius(fahr)); fahr = fahr + STEP_TEMP; } celsius = LOWER_TEMP; printf("celsius\tfahr\n"); while (celsius <= UPPER_TEMP) { printf("%3.0f %6.1f\n", celsius, celsius2fahr(celsius)); celsius = celsius + STEP_TEMP; } return 0; } float fahr2celsius(float fahr) { return (5.0 / 9.0) * (fahr - 32.0); } float celsius2fahr(float celsius) { return (9.0 / 5.0) * celsius + 32.0; }
実行結果
$ ./ex1-15 fahr celsius 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 celsius fahr 0 32.0 20 68.0 40 104.0 60 140.0 80 176.0 100 212.0 120 248.0 140 284.0 160 320.0 180 356.0 200 392.0 220 428.0 240 464.0 260 500.0 280 536.0 300 572.0 $
1.8 引数 – 値による呼出し (call by value)
関数の引数に渡した呼び出し元の変数を変更する場合はポインタで渡す。
配列の場合は、配列名で渡すと、実際に関数に渡される値は配列を指すポインタが渡される。
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726