c语言中的数组覆盖,[求助] 怎么得到被覆盖的数组?

[求助] 怎么得到被覆盖的数组?

#include

#ifndef MAXN

#define MAXN 100

#endif

//int n = 5, r = 3;/* P(n,r) */

//int n, r;

int used[MAXN]; /* 待排列数据使用标记 */

int p[MAXN]; /* 解空间 - 保存每次形成的排列结果 */

int data[MAXN]; /* 待排列组合的数据空间 */

int a[100];

void permute(int pos, int r, int n) /* pos是用来标记位置的 */

{

for (int j=0; j

{

data[j]=j;

}

int i = 0;

if (pos != r)

{

for (i=0; i

{

if (!used[i])

{

used[i]++;

p[pos] =data[i];

permute(pos+1,r,n);

used[i]--;

}

}

}

else//if (pos == r)

{

for (i=0;i

if (p[0]==0)

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

printf("\n");

return;

}

}

void main( )

{

permute(0,3,5);

}

这是一个全排列的问题 小弟不知道如何在此程序里面得到输出结果中的一个

因为输出的结果 总是后一个数组覆盖前面的一个数组

应该是可以用指针实现 可是小弟指针不太懂! 拜托各位了!

急!

[此贴子已经被作者于2006-5-11 15:47:42编辑过]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值