24小时热门版块排行榜    

CyRhmU.jpeg
查看: 545  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

astringent

铜虫 (著名写手)

[交流] 【求助】大家帮忙看看数组存值和引用已有2人参与

我现在有一组数据,是对应step=1,2---10的数,但是每个step对应的数据的个数不一定相等。我想把这些数(在程序用a表示)存在数组中,以便后面用,在后面我要定义一个函数,如H(x),x可以取0到30000的任意值,当x取我的数据中值是,H(x)=1,否则为0.也就是说当step=1,x取15733,18193,20251时,H(x)=1,当step=2,x取15733,20251时,H(x)=1。大家帮忙看看这样写行不行?如果不行,应该怎样实现?先谢谢了
do istep=1,10
test(10,istep)=a  !将a存到数组test中。对应每个step的a值最多是10
enddo
do i=1,30000  !x取所有可能的 值
    do istep=1,10
         do j=1,10
             if(i==test(j,istep))then
                  H(i)=1
             else
                  H(i)=0
            endif           
         enddo
     enddo
enddo

step           1       15733
step           1       18193
step           1       20251
step           2       15733
step           2       20251
step           3       20824
step           4       15733
step           4       16159
step           4       18193
step           4       20251
step           4       20824
step           5       16159
step           5       18193
step           5       20251
step           5       20824
step           6       15733
step           6       20251
step           6       20824
step           7       15733
step           7       20251
step           7       20824
step           8       15733
step           8       16159
step           8       18193
step           8       20251
step           9       18193
step           9       20251
step          10        9490
step          10       16159
step          10       20251
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

piduil

铜虫 (初入文坛)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+2):鼓励应助,欢迎常来交流 2010-12-02 07:50:41
! 假设你的test数组已经赋值,空的数据用0表示
H=0
do istep=1,10
  do j=1,10
    if(test(j,istep)/=0) H(test(j,istep))=1
   end do
end do
5楼2010-12-01 16:26:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

piduil

铜虫 (初入文坛)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1):鼓励应助 2010-12-02 07:50:24
1,test数组需要初始化,假设初始化所有的值都为0
2,H数组初始化全部为0,在循环中就可以不需要else后面的赋值
3,如果test的值为0的情况你没有考虑,这样会引起给H(0)赋值的错误,这样你判断一下然后跳出循环就可以。
2楼2010-12-01 13:18:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astringent

铜虫 (著名写手)

引用回帖:
Originally posted by piduil at 2010-12-01 13:18:32:
1,test数组需要初始化,假设初始化所有的值都为0
2,H数组初始化全部为0,在循环中就可以不需要else后面的赋值
3,如果test的值为0的情况你没有考虑,这样会引起给H(0)赋值的错误,这样你判断一下然后跳出循环 ...

我改了一下,你说的是这个意思吗?
do istep=1,10
test(10,istep)=a  !将a存到数组test中。对应每个step的a值最多是10
enddo
H=0
do i=1,30000  !x取所有可能的 值
    test=0  
    do istep=1,10
         do j=1,10
             if(i==test(j,istep))then
                  H(i)=1
            endif           
         enddo
     enddo
enddo
3楼2010-12-01 16:02:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

piduil

铜虫 (初入文坛)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by astringent at 2010-12-01 16:02:10:

我改了一下,你说的是这个意思吗?
do istep=1,10
test(10,istep)=a  !将a存到数组test中。对应每个step的a值最多是10
enddo
H=0
do i=1,30000  !x取所有可能的 值
    test=0  
    do istep=1, ...

很抱歉,没有看到你的对i进行了长度为30000的循环,那我那个给H(0)赋值的说法不成立。
你的编程风格很像我原来的舍友啊!那个长度为30000的循环不是必要的,等会我给你写个代码供你参考吧。
4楼2010-12-01 16:16:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见