#include "stdafx.h"
#include
#include
int main()
{
int a, b, c, d, e, i = 0;
int sum = 0;
int b1[31] = { 1,4,3,4,5,6,7,0 };
int b2[31] = { 1,1,3,4,5,3,7,0 };
int b3[31] = { 1,7,3,4,5,6,7,0 };
int b4[31] = { 1,1,3,4,5,4,7,0 };
int b5[31] = { 1,1,3,4,5,6,7,0 };
for (a = 1; a <= 8; a++)
{
b1[a] = 1;
b1[a] = 4;
b1[a] = 3;
b1[a] = 4;
b1[a] = 5;
b1[a] = 6;
b1[a] = 7;
b1[a] = 0;
}
for (b = 1; b <= 8; b++)
{
b2[b] = 1;
b2[b] = 1;
b2[b] = 3;
b2[b] = 4;
b2[b] = 5;
b2[b] = 3;
b2[b] = 7;
b2[b] = 0;
}
for (c = 1; c <= 8; c++)
{
b3[c] = 1;
b3[c] = 7;
b3[c] = 3;
b3[c] = 4;
b3[c] = 5;
b3[c] = 6;
b3[c] = 7;
b3[c] = 0;
}
for (d = 1; d <= 8; d++)
{
b4[d] = 1;
b4[d] = 1;
b4[d] = 3;
b4[d] = 4;
b4[d] = 5;
b4[d] = 4;
b4[d] = 7;
b4[d] = 0;
}
for (e = 1; e <= 8; e++)
{
b5[e] = 1;
b5[e] = 1;
b5[e] = 3;
b5[e] = 4;
b5[e] = 5;
b5[e] = 6;
b5[e] = 7;
b5[e] = 0;
}
sum = b1[a] + b2[b] + b3[c] + b4[d] + b5[e];
if (sum ==5)
{
printf("A:%2d B:%2d C:%2d D:%2d E:%2d ", b1[a], b2[b], b3[c], b4[d], b5[e]);
i++;
if (i % 1 == 0)
printf("\n");
}
printf("共有%d种办法\n", i);
return 0;
}
我想当a=1的时候b1【1】=1,依次类推,最后判定sum==5把它们分别打印出来,但是运行结果却现实共有0种办法,应该最少有一种组合的呀。问题出在哪里啦?5重for循环,如何用数组给它分别循环赋值呢?请教