| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1304 人关注过本帖
标题:Help:用findmax函数求出数组中 最大元素 在数组中的下标
只看楼主 加入收藏
xgekq
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:19 
Help:用findmax函数求出数组中 最大元素 在数组中的下标
*用findmax函数求出数组中 最大元素 在数组中的下标

set talk off
clear
dime a(10)
for i=1 to 10
    a(i)=int(rand()*100+1)
endfor
for i=1 to 10
    ??a(i)
endfor
c=findmax(a)
?c
set talk on
cancel

function findmax (g)
    k=0
    max0=g(1)&&报错。找不到g.prg,明明是数组,咋报错程序文件呢?
    for i=2 to 10
        if max0<g(i)
            max0=g(i)
            k=i
        endif
    endfor
    return k
endfunc
搜索更多相关主题的帖子: 元素 
2013-03-13 14:47
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
function findmax (g)  这里从哪能看出来g是一个数组呢

DO IT YOURSELF !
2013-03-13 14:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 楼主 xgekq
set talk off
clear
dime a(10)
for i=1 to 10
    a(i)=int(rand()*100+1)
endfor
for i=1 to 10
    ??a(i)
endfor
c=findmax(a)
?c
set talk on
cancel

function findmax (g)
    LOCAL G(10)
    k=0
    max0=g(1) &&报错。找不到g.prg,明明是数组,咋报错程序文件呢?
    for i=2 to 10
        if max0<g(i)
            max0=g(i)
            k=i
        endif
    endfor
    return k
endfunc
先声明数组变量

坚守VFP最后的阵地
2013-03-13 15:02
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
function findmax (g)
    LOCAL G(10)
g和G是一个 还是2个  如果是2个 恐怕和楼主的意图不符  如果是一个的话  能编译通过吗

DO IT YOURSELF !
2013-03-13 15:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用wp231957在2013-3-13 15:04:41的发言:

function findmax (g)
    LOCAL G(10)
g和G是一个 还是2个  如果是2个 恐怕和楼主的意图不符  如果是一个的话  能编译通过吗
如果声明G(1),将发生错误
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2013-03-13 15:07
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 3楼 sdta
还是不对  这样能编译通过  但是函数却是永远返回0  参数传不过去

DO IT YOURSELF !
2013-03-13 15:20
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用xgekq在2013-3-13 14:47:54的发言:

*用findmax函数求出数组中 最大元素 在数组中的下标

set talk off
clear
dime a(10)
for i=1 to 10
    a(i)=int(rand()*100+1)
endfor
for i=1 to 10
    ??a(i)
endfor
c=findmax(a)
?c
set talk on
cancel

function findmax (g)
    k=0
    max0=g(1)&&报错。找不到g.prg,明明是数组,咋报错程序文件呢?
    for i=2 to 10
        if max0
你前面定义的数组是a[10],后面引用的是g[1],VFP系统如何能够知道g()是引用a[10]数组呢。
不要以为函数可以将前面的a数组接收并自动转换成g数组。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-13 15:22
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
调用函数时根本不要用参数,返回数组的下标即可。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-13 15:24
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
7楼 分析到点子上了
2013-03-13 15:26
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
试试:
set talk off
clear
dime a(10)
for i=1 to 10
    a(i)=int(rand()*100+1)
endfor
for i=1 to 10
    ??a(i)
endfor
c=findmax()
?c
set talk on
cancel

function findmax
    k=0
    max0=a(1)
    for i=2 to 10
        if max0<a(i)
            max0=a(i)
            k=i
        endif
    endfor
    return k
endfunc

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-13 15:26
快速回复:Help:用findmax函数求出数组中 最大元素 在数组中的下标
数据加载中...
 
   



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

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