1、將硬幣分成2份,得出兩份重量;
2、從重的那份取出壹枚,其為真幣重量;
3、將輕的那壹份40枚硬幣逐壹與真幣相比,若輕則為假幣。
(註意,三元表達式中的問號和if語句,相當於天平的使用)
#include <stdio.h>
void main() {
int a[80]={2},s,s1=s2=0,i,*p;
a[51]=1; /* 假設第52枚為假幣
for(i=0;i<40;i++) {
s1+=a[i];
s2+=a[i+40];
}
p=(s1>s2)? &a[40] : &a[0] ;
s=(s1>s2)? a[0] : a[40] ;
for(i=0; i<40; i++,p++) if(*p < s) break;
printf("假幣為第%d枚,其重量為%d\n", p-&a[0]+1,*p);
}