| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1109 人关注过本帖
标题:查找在随机数位置怎么处理,帮我看下错在哪里
只看楼主 加入收藏
me_mou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:18 
查找在随机数位置怎么处理,帮我看下错在哪里
我是一个刚开始接触VF的学生,在做题遇到很多的困难,希望大家多多指导,谢谢

随机产生10个数,输入n,查找n在随机数中出现的位置,未出现就提示“未出现”。
我的解答过程:
set talk off
clear
input"请输入一个数:" to n
f=.T.
dimension a(n)
for i=1 to 10
a(n)=int(rand()*10+1)
next
?"随机数为:",a(n)
for i=1 to 10
if a(i)=n
f=.F.
?"位置是:",i
exit
endif
next
if f=.T.
?"未出现"
set talk on
cancel
老是提示操作符不匹配
希望大家能提出是哪一步错了,或者有更好的方法最好,谢谢
搜索更多相关主题的帖子: 最好 
2013-04-12 13:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你定义a[n]的数组干嘛?思路都没理清。

授人以渔,不授人以鱼。
2013-04-12 13:57
me_mou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-12
收藏
得分:0 
回复 2楼 TonyDeng
我不大会做这个题,我是参考之前做过一个素数的题来做的,有没有什么好点的方法解这个题呢
2013-04-12 14:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
关键是理清思路,分步骤做。
1.定义10个元素的数组,题目要求预先有10个随机数,用这个数组来储存这些数据,定义数组之后给每个元素赋予随机数,填满它。
2.接受用户输入的数据n
3.在10元素的数组中搜索是否有值等于n的数据,有就把这个数据的数组下标输出,没有就报告找不到。

授人以渔,不授人以鱼。
2013-04-12 14:03
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:10 
帮你稍改了一下

Set Talk Off
Clear
Input"请输入一个数:" To N
F=.T.
Dimension a(10)
?"随机数为:"

For i=1 To 10
    a(i)=Int(Rand()*10+1)
    ??a(i)
Next
For i=1 To 10
    If a(i)=N
        F=.F.
        ?"位置是:",i
        Exit
    Endif
Next
If F=.T.
    ?"未出现"
Endif

Set Talk On
2013-04-12 14:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
最好考虑一下10个随机数不要重复

授人以渔,不授人以鱼。
2013-04-12 14:14
me_mou
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-12
收藏
得分:0 
回复 4楼 TonyDeng
谢谢版主,结合了楼下的过程,我能理解了, 我会加油的
2013-04-12 14:15
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
程序代码:
set talk off
clear
input"请输入一个数:" to n
dimension a(10)
for i=1 to 10
    a(i)=int(rand()*10+1)
    ?"随机数为:",a(i)
    if a(i)=n
       ??[ ]+"位置是:",i      
       exit
    else
       ??[ ]+"未出现"   
    endif
next
set talk on
试试

坚守VFP最后的阵地
2013-04-12 14:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
嗯,理清思路之后,不光自己能写,能看别人的代码,也能看出有什么问题,纲举目张。

授人以渔,不授人以鱼。
2013-04-12 14:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这样的题目,最好把代码拆解为函数来实现,现在不注意培养这种感觉,将来意大利面条越缠越复杂,就知道头大了。喏,你看看上面的代码,如果增加10个随机数不重复的要求,代码如何整改?若拆解为函数,又会如何?两种做法都试一下,对比一下,感觉就出来了。

[ 本帖最后由 TonyDeng 于 2013-4-12 14:30 编辑 ]

授人以渔,不授人以鱼。
2013-04-12 14:27
快速回复:查找在随机数位置怎么处理,帮我看下错在哪里
数据加载中...
 
   



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

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