【課題4−6  関数から値を返す】 arithmeticは二つの整数を渡すと,四則演算の結果を配列に返す関数である.配列ではなく,四つの変数に結果を返すように書き換えよ. #include void arithmetic(int x, int y, int *p); int main(void) { int dt1, dt2, result[4]; printf("Input two numbers:"); scanf("%d%d", &dt1, &dt2); arithmetic(dt1, dt2, result); printf("%d + %d = %d¥n", dt1, dt2, result[0]); printf("%d - %d = %d¥n", dt1, dt2, result[1]); printf("%d * %d = %d¥n", dt1, dt2, result[2]); printf("%d / %d = %d¥n", dt1, dt2, result[3]); return 0; } /* 四則演算 */ /* 引数: x:整数1 y:整数2 *p:演算結果格納配列へのポインタ */ /* 返値:なし */ void arithmetic(int x, int y, int *p) { *p = x + y; *(p+1) = x - y; *(p+2) = x * y; if (y != 0) *(p+3) = x / y; } 【実行結果例】 Input two numbers:45 15 45 + 15 = 60 45 - 15 = 30 45 * 15 = 675 45 / 15 = 3 【解説とヒント】 変数のアドレスを実引数にし,関数側ではポインタで受け取るようにすると,変数の中身に直接値を代入することができる.