| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 458 人关注过本帖
标题:救救我啊!~!~
只看楼主 加入收藏
cn123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-12-23
收藏
 问题点数:0 回复次数:8 
救救我啊!~!~

各位大哥大姐,我实在是看不懂一下的代码 可以帮帮我看看一下代码实现什么功能吗 ?? 感激不敬

void process(char* elem, int l, int r)
{
int i = l, j = r;
char* a= &elem[l];

While(i < j)
{
while (i < j && *a < elem[j])
j--;
if(i < j)
{
elem[i] =elem[j];
i++;
}
while (i < j && elem[i] < *a)
i++;
if(i < j)
{
elem[j] = elem[i];
j--;
}
}
elem[i] = *a;
if(l < i)
process(elem, l, i-1);
if(i < r)
process(elem, j+1, r);
}

2005-12-23 14:51
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
这是一个递规函数

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2005-12-23 15:03
cn123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-12-23
收藏
得分:0 
我也知道啊 但这段程序实现的功能是什么啊 ??
有了结果我也看不出来啊 ???
2005-12-23 15:05
沉默的羔羊1013
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-12-10
收藏
得分:0 
你肯定这个函数是正确的吗?
2005-12-23 19:47
cn123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-12-23
收藏
得分:0 
肯定啊
2005-12-23 19:55
沉默的羔羊1013
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-12-10
收藏
得分:0 

那你运行者程序看看,结果没什麽意义啊
void process(char* elem, int l, int r)
{
int i = l, j = r;
char* a= &elem[l];

while(i < j)
{
while (i < j && *a < elem[j])
j--;
if(i < j)
{
elem[i] =elem[j];
i++;
}
while (i < j && elem[i] < *a)
i++;
if(i < j)
{
elem[j] = elem[i];
j--;
}
}
elem[i] = *a;
if(l < i)
process(elem, l, i-1);
if(i < r)
process(elem, j+1, r);
}

main()
{
char a[8]={"chinese"};
process(a,0,6);
printf("%s\n",a);
getch();
}

2005-12-23 20:04
cn123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-12-23
收藏
得分:0 
怎么出来是原样输出啊 ??
2005-12-23 20:13
沉默的羔羊1013
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-12-10
收藏
得分:0 
我的输出是ceeeiis,我觉得你的函数有问题啊,你那里找到的这个函数?
2005-12-23 20:21
cn123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-12-23
收藏
得分:0 

#include <stdio.h>
void process(char * elem,int l,int r)
{
int i=l,j=r;
char* a=&elem[l];
while(i<j)
{
while(i<j && *a<elem[j])
j--;
if(i<j)
{
elem[i]=elem[j];
i++;
}
while(i<j&&elem[i]<*a)
i++;
if(i<j)
{
elem[j]=elem[i];
j--;
}
}
elem[i]=*a;
if(l<i)
process(elem,l,i-l);
if(i<r)
process(elem,j+l,r);
// printf("%s\n",a);
}

int main()
{

char a[100]="abdcfegh";
char * p;
p=a;
process(p,1,4);
printf("%s\n",p);

}
应该是这样的吧 呵呵1`1``1 不好意思啊
但输出结果我也看不出功能啊

2005-12-25 12:19
快速回复:救救我啊!~!~
数据加载中...
 
   



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

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