诸位大仙,近几天上网不方便,我自己搞了个利用循环嵌套的,一看就太拉杂了惭愧啊。
等随后再总结一下大家的方法,谢谢啦
以下我弄得代码暂时以数字代替字母,当排到12个数的时候就要算半个多小时了。
看来要排出26个字母真的不可行了。
////////////////////////////
#include <time.h>
#include <windows.h>
#include<stdio.h>
main()
{
time_t t_start, t_current;
FILE * fp ;
fp=fopen("DATA.TXT","w");
int a,b,c,d,e,f,g,h,i,j,k,l;
const int num = 12 ;
fprintf(fp,"\n");
t_start = time(NULL) ;
for(a=1;a<=num;a++)
{//外层for
if( 1 ) // num之1
fprintf(fp,"%d\n",a);
for(b=1;b<=num;b++)
{//2层for
if( a<b ) // num之2
fprintf(fp,"%d,%d\n",a,b);
for (c=1;c<=num;c++)
{//3层for
if( a<b && b<c ) // num之3
fprintf(fp,"%d,%d,%d\n",a,b,c);
for (d=1;d<=num;d++)
{//4层for
if( a<b && b<c && c<d ) // num之4
fprintf(fp,"%d,%d,%d,%d\n",a,b,c,d); /////////计算完成百分比和时间//////////
t_current = time(NULL) ;
printf("已用时%.0f秒,完成%2.1f%%\r", difftime(t_current,t_start),(float)a/num * 100 - 0.1 );
////////////////////////////////////// for (e=1;e<=num;e++)
{//5层for
if( a<b && b<c && c<d && d<e ) // num之5
fprintf(fp,"%d,%d,%d,%d,%d\n",a,b,c,d,e);
for (f=1;f<=num;f++)
{//6层for
if( a<b && b<c && c<d && d<e && e<f ) // num之6
fprintf(fp,"%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f);
for (g=1;g<=num;g++)
{//7层for
if( a<b && b<c && c<d && d<e && e<f && f<g ) // num之7
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g);
for (h=1;h<=num;h++)
{//8层for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h ) // num之8
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h);
for (i=1;i<=num;i++)
{//9层for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i ) // num之9
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i);
for (j=1;j<=num;j++)
{//10层for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i && i<j ) // num之10
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i,j);
for (k=1;k<=num;k++)
{//11层for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i && i<j && j<k ) // num之11
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i,j,k); }//11层for
}//10层for
}//9层for
}//8层for
}//7层for
}//6层for
}//5层for
}//4层for
}//3层for
}//2层for
}//外层for
printf("计算全部完成,总计用时%.0f秒。\n", difftime(t_current,t_start));
printf("结果保存在程序所在目录之下。\n");
}