回 帖 发 新 帖 刷新版面

主题:还有个分析程序的

dim a(20)
for i=1 to 20
a(i/2)=2*i+1
a(i/2+1)=a(i/2)
next i
fpr i=10 to 1 step -3
print a(i);
next i
end
其中a(4)怎么等于19呢?谢谢!!!

回复列表 (共8个回复)

沙发


dim a(20)      
for i=1 to 20    
a(i/2+1)=a(i/2)
next i
fpr i=10 to 1 step -3
print a(i);
next i
end
输出的是:49 29 19 5
输出的是 a(10) a(7) a(4) a(1)
所以 a(4)=19  而不是29啊

板凳


              dim a(20)
      当i=8→ for i=1 to 20  
则到这步是→ a(i/2)=2*i+1  a(8/2)=a(4)=2*8+1=19  所以a(4)=19
              a(i/2+1)=a(i/2)
              next i
              fpr i=10 to 1 step -3
              print a(i);
              next i
              end

3 楼

[color=FF00FF]则到这步是→ a(i/2)=2*i+1  a(8/2)=a(4)=2*8+1=19  所以a(4)=19[/color]
2*8+1 好像是等于17吧?

但当运行到 i=9 的时候
a(i/2)=2*i+1
  i/2的值是4.5,但作为数组的下标得值4,是对a(4)作赋值2*9+1=19
这个时候才赋的值19

4 楼

MOZ,a(4.5)四舍五入不是A(5)吗?

5 楼

是四舍五入的

但是QB这种四舍五入的处理是很奇怪的
是要大于五的才进位的,等于五的都不进位的.
就像是对于
a%=a! 的这一种赋值语句,
当 a!=4.5       的时候  a%=4
当 a!=4.5000001 的时候  a%=5

但不怕老实说,这些东西别以为我能记得住,关键是在于实时检查.
用程序的运行结果来检查,这是很现实也很实际的事情.

6 楼

a(4.5)  ===a(4)
a(3.5)  ===a(4)
看4,3
总之一句话---奇进偶不进
大家可以自己试试

7 楼

呵呵,果然如些.
可能是与二位制位有关吧.

8 楼

哦,明白了,谢谢楼上的两位

我来回复

您尚未登录,请登录后再回复。点此登录或注册