荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: bakey (sbb的猪), 信区: Program
标  题: [合集]重贴一次,刚才的程序数据交换时,又交换回去了,ft!
发信站: 荔园晨风BBS站 (2005年12月07日21:58:59 星期三), 站内信件

☆   1  ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标  题: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:08:39 2005

#include <stdio.h>

#define length 8

unsigned int sum=0;

void print(char data[],int depth);

void main()
{
        char a[length]={'a','b','c','d','e','f','g','h'};
}

void print(char data[],int depth)
{
        if (depth == length-1)
}
--

※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 192.168.100.226]

※ 修改:.blackhawk 於 Dec  2 22:09:04 2005 修改本文.[FROM: 192.168.100.226]
※ 修改:.blackhawk 於 Dec  2 22:09:54 2005 修改本文.[FROM: 192.168.100.226]
※ 修改:.blackhawk 於 Dec  2 22:14:11 2005 修改本文.[FROM: 192.168.100.226]

☆   2  ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:11:44 2005

print函数中的第二个参数是控制从哪里开始排列,如果改试验数据,要把length改掉,和a
数组里面的值,其他都不用
【 在 blackhawk 的大作中提到: 】
: #include <stdio.h>
:
: #define length 8
:
: unsigned int sum=0;
:
: void print(char data[],int depth);
:
: void main()
: {
:       char a[length]={'a','b','c','d','e','f','g','h'};
:       a[length]=0;
:       print(a,0);
: }
:
: void print(char data[],int depth)
: {
:       if (depth == length-1)
:       {
:               printf("%d:",sum);
: (以下引言省略...)



☆   3  ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:22:16 2005

这样就没有错了,但是有个问题,结果不对,你调试看看吧.不是全排列.....
#include <stdio.h>

#define length 8

unsigned int sum=0;

void print(char data[],int depth);

void main()
{
        char a[length]={'a','b','c','d','e','f','g','h'};
}

void print(char data[],int depth)
{
        int i;
}

【 在 blackhawk 的大作中提到: 】
: print函数中的第二个参数是控制从哪里开始排列,如果改试验数据,要把length改掉?..
: 数组里面的值,其他都不用
: 【 在 blackhawk 的大作中提到: 】
: : #include <stdio.h>
: :
: : #define length 8
: :
: : unsigned int sum=0;
: :
: : void print(char data[],int depth);
: :
: : void main()
: : {
: :     char a[length]={'a','b','c','d','e','f','g','h'};
: :     a[length]=0;
: :     print(a,0);
: : }
: :
: : void print(char data[],int depth)
: : {
: (以下引言省略...)



☆   4  ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:23:03 2005

程序改了,你再看看,在3358
【 在 starsun 的大作中提到: 】
: 这样就没有错了,但是有个问题,结果不对,你调试看看吧.不是全排列.....
: #include <stdio.h>
:
: #define length 8
:
:
: unsigned int sum=0;
:
: void print(char data[],int depth);
:
: void main()
: {
:       char a[length]={'a','b','c','d','e','f','g','h'};
:       print(a,0);
: }
:
: void print(char data[],int depth)
: {
:       int i;
:       if (depth == (length-1))
: (以下引言省略...)

--

※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 192.168.100.226]

※ 修改:.blackhawk 於 Dec  2 22:24:01 2005 修改本文.[FROM: 192.168.100.226]
※ 修改:.blackhawk 於 Dec  2 22:42:19 2005 修改本文.[FROM: 192.168.100.226]

☆   5  ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:47:01 2005


这样才运行得了,我那里i,j要在循环条件外定义才行,要不然出错.
刚才后面那几行程序只交换了值,但是没换回来,所以还少了一些排列.谢谢了,终于
明白了.....

#include <stdio.h>

#define length 8

unsigned int sum=0;

void print(char data[],int depth);

void main()
{
        char a[length]={'a','b','c','d','e','f','g','h'};
}

void print(char data[],int depth)
{int i;int j;char temp;
        if (depth == length-1)
}

【 在 blackhawk 的大作中提到: 】
: 程序改了,你再看看,在3362
: 【 在 starsun 的大作中提到: 】
: : 这样就没有错了,但是有个问题,结果不对,你调试看看吧.不是全排列.....
: : #include <stdio.h>
: :
: : #define length 8
: :
: :
: : unsigned int sum=0;
: :
: : void print(char data[],int depth);
: :
: : void main()
: : {
: :     char a[length]={'a','b','c','d','e','f','g','h'};
: :     print(a,0);
: : }
: :
: : void print(char data[],int depth)
: : {
: (以下引言省略...)



☆   6  ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:51:41 2005

原先的贴子,是交换值的时候,在for循环里面后,换回来了,所以重复了。至于你说的i,j
问题,我想你应该用的是最古老的tc吧。
【 在 starsun 的大作中提到: 】
:
: 这样才运行得了,我那里i,j要在循环条件外定义才行,要不然出错.
: 刚才后面那几行程序只交换了值,但是没换回来,所以还少了一些排列.谢谢了,终于
: 明白了.....
:
: #include <stdio.h>
:
: #define length 8
:
: unsigned int sum=0;
:
: void print(char data[],int depth);
:
: void main()
: {
:       char a[length]={'a','b','c','d','e','f','g','h'};
:       a[length]=0;
:       print(a,0);
: }
:
: (以下引言省略...)



☆   7  ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:53:37 2005

不是啊,我用的是VC++
【 在 blackhawk 的大作中提到: 】
: 原先的贴子,是交换值的时候,在for循环里面后,换回来了,所以重复了。至于你说?..
: 问题,我想你应该用的是最古老的tc吧。
: 【 在 starsun 的大作中提到: 】
: :
: : 这样才运行得了,我那里i,j要在循环条件外定义才行,要不然出错.
: : 刚才后面那几行程序只交换了值,但是没换回来,所以还少了一些排列.谢谢了,终于
: : 明白了.....
: :
: : #include <stdio.h>
: :
: : #define length 8
: :
: : unsigned int sum=0;
: :
: : void print(char data[],int depth);
: :
: : void main()
: : {
: :     char a[length]={'a','b','c','d','e','f','g','h'};
: :     a[length]=0;
: (以下引言省略...)



☆   8  ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 22:54:28 2005

不可能阿,我就是在vc里面调试的
【 在 starsun 的大作中提到: 】
: 不是啊,我用的是VC++
: 【 在 blackhawk 的大作中提到: 】
: : 原先的贴子,是交换值的时候,在for循环里面后,换回来了,所以重复了。至于你?..
: : 问题,我想你应该用的是最古老的tc吧。
: : (以下引言省略...)



☆   9  ──────────── 我是分割线 ─────────────────☆
发信人: starsun (小刚与微软 ), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Fri Dec  2 23:27:16 2005

我确实是用VC++不知道为什么,只能这样,要不然出现15个错误,当然,还附带2个警告.-_-0
【 在 blackhawk 的大作中提到: 】
: 不可能阿,我就是在vc里面调试的
: 【 在 starsun 的大作中提到: 】
: : 不是啊,我用的是VC++



☆  10  ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Sat Dec  3 12:02:17 2005

it's definitely impossible.
u could paste all over codes in one file named such as "123.c",or "123.cpp",what
ever.
and compile it into one exe file,then try to run it.
【 在 starsun 的大作中提到: 】
: 我确实是用VC++不知道为什么,只能这样,要不然出现15个错误,当然,还附带2个警告.-_..
: 【 在 blackhawk 的大作中提到: 】
: : 不可能阿,我就是在vc里面调试的



☆  11  ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标  题: Re: 重贴一次,刚才的程序数据交换时,又交换回去了,ft!
时  间: Sat Dec  3 12:09:11 2005

btw,this algorithm is not the most optimized ,the reason why i use this algorith
m is just because this algorithm is easy for people to get it,and besides,some o
f codes could be replaced by some easiler functions offered by c library,or c++
library,such as this following:
for (int i=1;i<10;i++)
{
    char b[i]=a[i];
}
replaced by memcpy(b,a,length of array a);
【 在 blackhawk 的大作中提到: 】
: it's definitely impossible.
: u could paste all over codes in one file named such as "123.c",or "123.cpp",..
: ever.
: and compile it into one exe file,then try to run it.
: 【 在 starsun 的大作中提到: 】
: : 我确实是用VC++不知道为什么,只能这样,要不然出现15个错误,当然,还附带2个警告...


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店