标题:
C语言经典算法之穷举搜索法
[打印本页]
作者:
苹果也疯狂
时间:
2014-5-13 16:52
标题:
C语言经典算法之穷举搜索法
#include <stdio.h>
#define SIDE_N 3
#define LENGTH 3
#define VARIABLES 6
/********
定义全局变量
*********/
int A,B,C,D,E,F;
int*pt[]={&A,&B,&C,&D,&E,&F};
int*side[SIDE_N][LENGTH]={&A,&B,&C,
&C,&D,&E,
&E,&F,&A};
int side_total[SIDE_N];
main()
{
inti,j,t,equal;
for(j=0;j<VARIABLES;j++)
*pt[j]=j+1; /*
初始化排列
1,2,3.....*/
while(1)
{
for(i=0;i<SIDE_N;i++)
{
for(t=j=0;j<LENGTH;j++)
t+=*side
[j];
side_total
=t;
}
for(equal=1,i=0;equal&& i<SIDE_N-1;i++)
if(side_total
!=side_total[i+1]) equal=0;
if(equal)
{
for(i=0;i<VARIABLES;i++)
printf("%4d",*pt
);
printf("\n");
scanf("%*c");
}
for(j=VARIABLES-1;j>0;j--)
if(*pt[j]>*pt[j-1]) break;
if(j==0) break;
for(i=VARIABLES-1;i>=j;i--)
if(*pt
>*pt[j-1]) break;
t=*pt[j-1];
*pt[j-1]=*pt
;
*pt
=t;
for(i=VARIABLES-1;i>j;i--,j++)
{
t=*pt[j];
*pt[j]=*pt
;
*pt
=t;
}
}
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0