马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zhuby 于 2020-4-10 12:05 编辑
C语言实现:B[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},任选其中两个位置a,b分别赋值为0~15中的一个数;要求输出所有结果
输出样例:B[16]={0,0,0,0,7,0,0,0,0,0,0,0,0,9,0,0},B[16]={0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,15},B[16]={1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0}.....一共有16*16*16*15=61440种情况
遍历次数你写错了吧?
例如:
情况1:a=2,b=4,向a位置放8,b位置放5,
情况2:a=4,b=2,向a位置放5,b位置放8
这两种情况算一次还是算两次
若这算两次的话,请把第二层for循环的初始条件j=i+1改为j=0 #include<stdio.h>
void print(int seta,int setb,int a,int b)
{
for(int i=0;i<16;i++)
{
if(i==seta)printf("%3d",a);
else if(i==setb)printf("%3d",b);
else printf("%3d",0);
}
printf("\n");
}
int main(void)
{
int i,j,k,l,num=1;
for (i=0;i<16;i++)
for (j=i+1;j<16;j++)
for(k=0;k<16;k++)
for(l=0;l<16;l++)
{
printf("遍历次数:%-4d\t",num++);
print(i,j,k,l);
}
return 0;
}
|