| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 687 人关注过本帖
标题:[求助]如何写出这个算法的源程序
只看楼主 加入收藏
欣儿
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-7-5
收藏
 问题点数:0 回复次数:7 
[求助]如何写出这个算法的源程序

在做一道题目时,我根据题目写了算法,但我不会写源程序,希望大家能帮忙,还希望大家能指出算法的不足之处

题目:

在一个给定的线性表中删除元素值在x到y之间的所有元素,要求以较高的效率实现

算法思想:先将向量A中所有在x到y之间的元素置成一个特殊的值0,并不立即删除它们,然后从最后向前依次扫描,删除为0的元素,移动后面的元素。

void del(A,n,x,y)
int A[];
int n,x,y;
{
int i,k;
for (i=1; i<=n; i++)
if (A[i]>=x && A[i]<=y) A[i]=0;
for (i=n; i>=1; i--)
if (A[i]=0)
{ for (k=i; k<=(n-1); k++) A[k] = A[k+1]; n--;
}
}

请大家帮忙写出源程序

搜索更多相关主题的帖子: 算法 
2006-07-05 16:08
ligt0610
Rank: 1
等 级:新手上路
帖 子:204
专家分:5
注 册:2006-6-29
收藏
得分:0 
感觉用连表做会比较好

通过不断的学习与思考才是提高自己能力的最好途径。。。。。。。
2006-07-05 16:12
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
[CODE]#include<stdio.h>
#include<assert.h>
int main(void)
{
int a[10]={1,2,3,4,5,6,7,8,9,10},min,max,i;
scanf("%d%d",&min,&max);
assert(min>=0&&max<=9&&max>=min);
if(max==9) i=min;
else
for(i=0;i<10&&max+1<10;i++)
{
if(i==min) min=-1;
if(min==-1)
a[i]=a[max+1],max++;
}
for(min=0;min<i;min++)
printf("%d ",a[min]);
}[/CODE]

[此贴子已经被作者于2006-7-5 18:14:01编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-07-05 18:08
欣儿
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-7-5
收藏
得分:0 
谢谢你了~~~~~~~
2006-07-05 18:49
欣儿
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-7-5
收藏
得分:0 

有人问道这样的思路里面
如果向量A中有0,而它又不是x,y之间的元素,那这样就会出错~~

怎么解决这个问题呢???

2006-07-05 18:56
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用欣儿在2006-7-5 18:56:23的发言:

有人问道这样的思路里面
如果向量A中有0,而它又不是x,y之间的元素,那这样就会出错~~

怎么解决这个问题呢???

俺没用你的思路啊...0 正数.负数..都可以

你可以测试一下..都没问题的!


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-07-05 19:10
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
而且你的算法.效率并不高...

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-07-05 19:23
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
以下是引用欣儿在2006-7-5 18:56:23的发言:

有人问道这样的思路里面
如果向量A中有0,而它又不是x,y之间的元素,那这样就会出错~~

怎么解决这个问题呢???

你可以在第一次扫描的时候在进行一次判断啊


2006-07-12 17:01
快速回复:[求助]如何写出这个算法的源程序
数据加载中...
 
   



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

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