| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1866 人关注过本帖
标题:[求助] 怎么得到被覆盖的数组?
只看楼主 加入收藏
duleibo
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-11
收藏
 问题点数:0 回复次数:15 
[求助] 怎么得到被覆盖的数组?

#include <stdio.h>

#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<n; j++)
{
data[j]=j;
}
int i = 0;
if (pos != r)
{
for (i=0; i<n; 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<r;i++)
if (p[0]==0)
printf("%d, ",p[i]);
printf("\n");
return;
}

}

void main( )
{
permute(0,3,5);

}



这是一个全排列的问题 小弟不知道如何在此程序里面得到输出结果中的一个 
因为输出的结果 总是后一个数组覆盖前面的一个数组   
应该是可以用指针实现 可是小弟指针不太懂! 拜托各位了!
急!

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

搜索更多相关主题的帖子: int MAXN pos used 
2006-05-11 15:07
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
希望您注意一下代码的格式即缩格排列问题。这样烂的程序很倒人胃口,知道吗?

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-11 15:20
duleibo
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-11
收藏
得分:0 

谢谢 楼上提醒!
太着急了 就直接粘贴了
不好意思
见谅!
请大家帮忙!谢谢


Anytime you feel the pain refrain,Dont\'carry the world upon your shoulders.
2006-05-11 15:34
金为床兮银为椅
Rank: 1
等 级:新手上路
帖 子:183
专家分:0
注 册:2006-3-20
收藏
得分:0 

论坛里面太多的人不会问问题!

大家要记得问问题要把问题说明白,最好详细地说明你的各个函数是干啥的,注释重要的变量,写出来你的输入和你要的输出,问题涉及到的所有的函数都要贴出来。

楼主你的pos的定义在哪里?你要的输入和输出都是什么?既然你注释里面指出你要的n是5,为什么要定义那么大的一维数组?你的主函数呢?你的问题根本没法让人理解!

你等高人来吧。。。。


努力学习C、C++、LINUX、ORACLE、ENGLISH,累死为止。
2006-05-11 15:38
duleibo
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-11
收藏
得分:0 
好的 谢谢提醒
刚来 希望大家指导
我改一下哈!

Anytime you feel the pain refrain,Dont\'carry the world upon your shoulders.
2006-05-11 15:40
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

#include <stdio.h>

#ifndef MAXN
#define MAXN 100
#endif

int n = 5, r = 3;
int used[MAXN]; /*´ýÅÅÁÐÊý¾ÝʹÓñê¼Ç*/
int p[MAXN]; /*½â¿Õ¼ä-±£´æÿ´ÎÐγɵÄÅÅÁнá¹û*/
int data[MAXN]; /*´ýÅÅÁÐ×éºÏµÄÊý¾Ý¿Õ¼ä*/
int a[100];
void permute(int pos)
{
int i;
if(pos != r)
{
for(i=0; i<n; i++)
{
if(!used[i])
{
used[i]++;
p[pos]=data[i];
permute(pos+1);
used[i]--;
}
}
}
else
{
for(i=0; i<r; i++)
{
printf("%d",p[i]);
}
printf("\t");
}
}

main()
{
int j;
for(j=0; j<n; j++)
{
data[j]=j+1;
}
permute(0);
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-11 15:45
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
LZ,如果还有不明白之处,直言.

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-11 15:46
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
–★–你太强了,1号注册的现在已经269贴了,佩服啊

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-11 15:47
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
多亏五一长假。我用编程调剂心情权当休息。篇数虽多但有见地的很少,也夹杂水帖(如本篇就是),耽搁大家宝贵时间了。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-11 15:56
duleibo
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-11
收藏
得分:0 
谢谢帮助
不过程序为什么不可以运行啊?

Anytime you feel the pain refrain,Dont\'carry the world upon your shoulders.
2006-05-11 15:58
快速回复:[求助] 怎么得到被覆盖的数组?
数据加载中...
 
   



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

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