ニセがね問題

 質問が終了したようなのでもう一度トライ。設定を「◎自動トラックバックを送信しない」にしておいたので今度は飛んでいないようです。

 ニセがね問題の簡単なプログラムを C で作ってみました。(^_^;

/*
 * ニセがね問題 nisegane.c
 */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define RANDOMIZE_TM()	srand((unsigned)time(NULL))	/* time.hが必要 */
#define iRAND(m,n)		(rand()%((n)-(m)+1)+(m))

int main(void)
{
	int a=10,b=10,c=10,d=10,e=10,f=10,g=10,h=10;
		
	RANDOMIZE_TM();
	switch(iRAND(1,8)){
		case 1: a=11; break;
		case 2: b=11; break;
		case 3: c=11; break;
		case 4: d=11; break;
		case 5: e=11; break;
	 	case 6: f=11; break;
		case 7: g=11; break;
		case 8: h=11; break;
	}
	
	if	(a+b+c> d+e+f){	/* 1 回目の測定(Case 1) */
		if	(a> b)	printf("Hit! A\n");	/* 2 回目の測定(Case 1) */
		else if	(a< b)	printf("Hit! B\n");	/* 2 回目の測定(Case 2) */
		else if	(a==b)	printf("Hit! C\n");	/* 2 回目の測定(Case 3) */
	}else if	(a+b+c< d+e+f){	/* 1 回目の測定(Case 2) */
		if	(d> e)	printf("Hit! D\n");	/* 2 回目の測定(Case 1) */
		else if	(d< e)	printf("Hit! E\n");	/* 2 回目の測定(Case 2) */
		else if	(d==e)	printf("Hit! F\n");	/* 2 回目の測定(Case 3) */
	}else if	(a+b+c==d+e+f){	/* 1 回目の測定(Case 3) */
		if	(g> h)	printf("Hit! G\n");	/* 2 回目の測定(Case 1) */
		else if	(g< h)	printf("Hit! H\n");	/* 2 回目の測定(Case 2) */
	}

	printf(" A  B  C  D  E  F  G  H \n");
	printf("%2d %2d %2d %2d %2d %2d %2d %2d \n",a,b,c,d,e,f,g,h);	

	return(0);
}

※参考URL
http://q.hatena.ne.jp/1289915457
● ̄torito_ パズル遊びへの招待 1−28.にせがねの問題
http://www.torito.jp/puzzles/128.shtml