| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1290 人关注过本帖
标题:[求助]实现findmax()函数
只看楼主 加入收藏
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
 问题点数:0 回复次数:6 
[求助]实现findmax()函数

红色是题目给出的,编程实现findmax()函数,寻找数组最大元素.该元素的下标通过参数返回,并返回其地址值.
#nclude<iostream.h>

int *findmax(int *array,int size,int *index);
void main()
{
int a[10]={33,91,54,67,82,37,85,63,19,68};
int *maxaddr;
int idx;

maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);

cout<<"the index of maximum element is "<<idx<<endl
<<"the address of it is "<<maxaddr<<endl
<<"the value of it is "<<a[idx]<<endl;
}

int *findmax(int *array,int size,int *index)
{
int max=0,idx;
size=sizeof(array)/sizeof(int);
for((*index)=0;(*index)<size;(*index)++)
if(array[*index]>max)
max=array[*index];
idx=*index;
return 0;
}

上面是我写的,是否符合题意?程序是否正确?

搜索更多相关主题的帖子: findmax int 函数 maxaddr idx 
2007-10-16 14:15
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
找最大值为什么要返回指针.
计算数组元素个数size=sizeof(a)/sizeof(int)
对定义为a[]={1,2,...};这样的计算.如果a已经是a[10] ,那不就是10了.
还有
求最大者要么返回这个数,要么就返回这个元素的位置.参数不用这么复杂的.

倚天照海花无数,流水高山心自知。
2007-10-16 14:34
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 

楼主是不是把论坛当成编译器了

为什么不放VC里面自己调试一下呢?


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-16 14:44
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
以下是引用nuciewth在2007-10-16 14:34:03的发言:
找最大值为什么要返回指针.
计算数组元素个数size=sizeof(a)/sizeof(int)
对定义为a[]={1,2,...};这样的计算.如果a已经是a[10] ,那不就是10了.
还有
求最大者要么返回这个数,要么就返回这个元素的位置.参数不用这么复杂的.

题目是这么要求的~函数声明都是已给出的~只是具体没定义~
回答3楼的朋友,我调试过了,可以运行出结果~这里只是想问下我写的是否达到了题目的要求(返回最大值下标和下标的地址).

还是谢谢2位帮忙~


★孤独的人是可耻的★
2007-10-16 15:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
如果真的这样,我也不想这样写.

倚天照海花无数,流水高山心自知。
2007-10-16 15:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
int *findmax(int *array,int size,int *index)
{
int i,k=0;
*index=array[0];
for(i=1;i<size;i++)
{
if(*index<array[i])
{
*index=array[i];
k=i;
}
}
return k;
}

倚天照海花无数,流水高山心自知。
2007-10-16 15:49
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
以下是引用nuciewth在2007-10-16 15:49:31的发言:
int *findmax(int *array,int size,int *index)
{
int i,k=0;
*index=array[0];
for(i=1;i<size;i++)
{
if(*index<array[i])
{
*index=array[i];
k=i;
}
}
return k;
}

这样看起来是舒服~呵呵~~~


★孤独的人是可耻的★
2007-10-16 15:54
快速回复:[求助]实现findmax()函数
数据加载中...
 
   



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

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