c语言程序奇特,C趣味程序百例(19)由8个整数形成奇特的立方体

#includevoid main()

{

int a[9],ii=0,i,a1,a2,a3,a4,b1,b2,b3,b4,flag;

for(i=1;i<=8;i++) /*输入个数*/

{

printf("Please enter [%d]number:",i);

scanf("%d",&a[i]);

ii+=a[i];

}

printf("******************************************\n");

if(ii%2) /*和为奇数则输入的8个数不可用*/

{

printf("Sorry they can't be constructed required cube!\n");

exit(0);

}

for(flag=0,a1=1;a1<=8;a1++) /*flag:完成标记.flag=1;表示完成*/

for(a2=1;a2<=8;a2++) /*采用八重循环建立八个整数的全排列*/

if(a2!=a1) /*前两个数不能相同*/

for(a3=1;a3<=8;a3++)

if(a3!=a2&&a3!=a1) /*前三个数不能相同*/

for(a4=1;a4<=8;a4++)

if(a4!=a3&&a4!=a2&&a4!=a1) /*前四个数不能相同*/

for(b1=1;b1<=8;b1++)

if(b1!=a4&&b1!=a3&&b1!=a2&&b1!=a1) /*不能相同*/

for(b2=1;b2<=8;b2++)

if(b2!=b1&&b2!=a4&&b2!=a3&&b2!=a2&&b2!=a1)

for(b3=1;b3<=8;b3++)

if(b3!=b2&&b3!=b1&&b3!=a4&&b3!=a3&&b3!=a2&&b3!=a1)

/*不能取相同的数*/

for(b4=1;b4<=8;b4++)

if(b4!=b2&&b4!=b1&&b4!=b3&&b4!=a4&&b4!=a3&&b4!=a2&&b4!=a1)

if(a[b1]+a[b2]+a[b3]+a[b4]==ii/2

&&a[a1]+a[a2]+a[b1]+a[b2]==ii/2

&&a[a1]+a[a4]+a[b1]+a[b4]==ii/2)

{

flag=1;goto out; /*满足条件则将flag置1后退出*/

}

out:

if(flag)

{

printf("They can be constructed required cube as follow:\n");

printf(" /%2d............/%2d\n",a[a4],a[a3]);

printf(" %2d/............%2d/|\n",a[a1],a[a2]);

printf(" | | | |\n");

printf(" | | | |\n");

printf(" | %2d| | |%2d\n",a[b4],a[b3]);

printf(" /................/\n");

printf(" %2d/.............%2d/\n",a[b1],a[b2]);

}

else printf("Sorry they can't be constructed required cube!\n");

}

*运行结果

Please enter [1] number:20

Please enter [2] number:45

Please enter [3] number:39

Please enter [4] number:25

Please enter [5] number:29

Please enter [6] number:7

Please enter [7] number:3

Please enter [8] number:2

Sorry they can't be constructed required cube!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值