小テスト 問題

分数は, 分子と分母という二つの整数から構成される構造体として表現することができる. たとえば, 以下のような定義を使おう:
struct bunsu {
  int bunshi;
  int bunbo;
};

この構造体であらわされた二つの分数の値が等しいかどうかを判定する 関数を作る. これは二つの分数を引数として受け取り, それらの(分数としての)値が等しい場合には 1 を, 等しくない場合には 0 を 関数の値として返すこととする. 分数が約分されていない場合にも対応できるようにしてもらいたい.


int beq(struct bunsu a, struct bunsu b){
  (ここを埋める)
}
解答のメールは, 上記の関数定義だけを送る. (メインプログラムや型宣言は不要.)

なお, 動作チェック用には, 以下のメインプログラムを利用するとよいだろう. データを変えたチェックもしてみること.


#include <stdio.h>

struct bunsu {
  int bunshi;
  int bunbo;
};

(ここに関数 beq の定義を入れる)

main(){
  struct bunsu x = {3, 4};
  struct bunsu y = {12, 16};
  int r;

  r = beq(x, y);

  printf("beq(%d/%d, %d/%d) = %d\n",
	 x.bunshi, x.bunbo,
	 y.bunshi, y.bunbo,
	 r);

  return(0);
}

この場合の出力は「beq(3/4, 12/16) = 1」となるはず.

index