???只用一个指针实现下面一个功能。。。

gl615 2008-05-19 09:21:14
从一个已经排好序的数组中去掉所有的奇数,比如原数组是从1到100的顺序数组(100个元素)【int array[100]】。
现在要写一个函数Fun(int* array)就接受一个参数:指针array,来去掉数组中的奇数,返回void
然后再遍历数组array时,里面就只剩下偶数了。
...全文
105 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gl615 2008-05-19
  • 打赏
  • 举报
回复
先谢谢这么多的朋友热心的回答,小弟不甚感激。

这个问题就算了,如果有兴趣看看:http://topic.csdn.net/u/20080519/21/181c40cf-f750-46d9-840c-90a9ad84fa6d.html
matrixdwy 2008-05-19
  • 打赏
  • 举报
回复
对啊,应该还有一个表示数组大小的参数
baihacker 2008-05-19
  • 打赏
  • 举报
回复
#include	<iostream>
#include <algorithm>
using namespace std;

void Modify(int * array, int& size)
{
int i = 0, j = 0;
for (;j<size;++j)
(array[i]=array[j])%2==0&&++i;
size = i;
}

int main(int argc, char* argv[])
{
int array[] = {1,3,4,2,3,4,6};
int size = sizeof(array)/sizeof(array[0]);
Modify(array, size);
copy(array, array+size, ostream_iterator<int>(cout,"\t"));
return 0;
}
RocWay007 2008-05-19
  • 打赏
  • 举报
回复
第一:楼主的叙述可能有疏漏,比如数组的长度或许是定长、元素或许都为非负数,这些条件楼主没有说出来。
第二:这道题大概主要是考究编程者的效率。
我的算法是这样:
int i=0; // 下一个偶数的目标位置。
for(int *p=array, *q=p+1; q不是指向最后一个元素 || *q>=*p; p++, q=p+1 )
{
if( (*p)%2 == 0 )
{
array[i] = *p;
}
}
arong1234 2008-05-19
  • 打赏
  • 举报
回复
我能想起得比较好得两个实现:
1. 用仿函
class myfunc
{
public:
int iSize;
void func(int * arr);
};
myfunc afunc;
afunc.iSize=100;
afunc(array);
2. 用模板
template<int iSize> func(int *);

不过这都是在有约束得条件下最优,没有约束得时候func(100,arr)应该是最容易最简单
arong1234 2008-05-19
  • 打赏
  • 举报
回复
C++以及所有的语言都应该尽量多的利用可用的语言特性,来facility编程和建模, 这种自我约束的方式来实现一种“稀奇古怪”的技巧,实在和这种理念背道而驰,对特定思考能力可能有所帮助(但是别人帮你做了连这个帮助都没有),但是对软件编程学习的大方向有损坏。

就如同砌房子,研究房子结构一般都比研究怎样抹水泥要有价值得多。
arong1234 2008-05-19
  • 打赏
  • 举报
回复
无非就是定义一个结构把指针和数组尺寸放进去,不过本质上不可能真正避免两个参数。要么这个题目不好,要么你理解有问题,这个题目不值得做

[Quote=引用 4 楼 gl615 的回复:]
数据结构与算法——C++版 书上的习题而已。

就是一道题目,不用管谁要求的、、
[/Quote]
baihacker 2008-05-19
  • 打赏
  • 举报
回复
你怎么知道输入的数组的元素有多少个?
在处理后这个数组又有多少个元素?
gl615 2008-05-19
  • 打赏
  • 举报
回复
数据结构与算法——C++版 书上的习题而已。

就是一道题目,不用管谁要求的、、
gl615 2008-05-19
  • 打赏
  • 举报
回复
关键就是函数只能接受一个参数:数组名!

在函数里面定义指针,把数组名赋给它,然后通过指针加加运算循环。

或许是定义2个指针,反正最终要使得array在函数体里面减刑...
执假以为真 2008-05-19
  • 打赏
  • 举报
回复
这是谁要求你的呢
maplewasp 2008-05-19
  • 打赏
  • 举报
回复
不可能吧,都不知道array中数组元素的个数。
如果知道数组元素的总数倒是好办。

64,689

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧