この右辺全体がひとつの式として評価されます。 すなわち、? の左の式 (y > 0) の値が真(非0)なら、 この式の値は : の左側の式 (y) を評価したものになり、 偽(0)なら : の右側の式 (-y) を評価したものになります。 上の例では、y が正なら y、負なら -y が x に代入されます。 従って y の絶対値が得られます。x = (y > 0) ? y : -y;
/* ** プログラム名: kadai55 ** 動作: 最大値を求める ** 作者: 自分の名前、学籍番号 ** 日付: 今日の日付 */ #include <stdio.h> #define MAX(a, b) (((a) > (b)) ? (a) : (b)) int data[] = { 5, 3, 2, 4, 7, 6, 9, 1, 8, 0 }; int main(void) { int i, max; max = data[0]; for (i = 1; i < 10; i++) /* この部分にプログラムを書いてください */ printf("max = %d\n", max); return 0; } |