| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1027 人关注过本帖
标题:[求助]编程打印1,2,3.....n的全排列
只看楼主 加入收藏
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

#include "stdio.h"

#define Max 100

struct{

int data[Max];

int top;

}stack;

int main(void){

int arry[Max],i,j;

int k,t,n,tmp,line=1,total=1;

printf("input number:");

scanf("%d",&n);

printf("output:\n");

for(i=2;i<=n;i++)

total*=i;

for(i=1;i<=n;i++){

arry[i]=i;

printf("%d",i);

}

printf(" ");

for(t=1;t<=total;t++){

i=1;

for(j=2;j<=n;j++)

if(arry[j-1]<arry[j])

i=j;

j=-1;

for(k=1;k<=n;k++)

if(arry[i-1]<arry[k]&&j<k)

j=k;

tmp=arry[i-1];

arry[i-1]=arry[j];

arry[j]=tmp;

stack.top=0;

k=i;

while(k<=n&&stack.top<Max)

stack.data[stack.top++]=arry[k++];

k=i;

while(k<=n&&stack.top>0)

arry[k++]=stack.data[--stack.top];

for(i=1;i<=n;i++)

printf("%d",arry[i]);

printf(" ");

if(line==9)

printf("\n",line=1);

else

line++;

}

return 0;

}

好久没来这了.今天心情不错.

这是我根据字典序法写的.


由于工作,N久都没来了!
2007-01-14 20:45
快速回复:[求助]编程打印1,2,3.....n的全排列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032169 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved