当前位置:编程学习 > VB >>

请问: 对于一个7*7的矩阵,求其两个对角线中能被3整除的数的个数,以下两段代码为什么会有不同的结果?

代码1: for i=1 to 7 for j=1 to 7 if i=j or i+j=8 and a(i,j) mod 3=0 then counter=counter+1 end if next j next i 代码2: for i=1 to 7 for j=1 to 7 if i=j or i+j=8 then if a(i,j) mod 3=0 then counter=counter+1 end if end if next j next i 请编程高手帮帮忙!感谢!
追问:所以说代码2是正确的咯?
答案:逻辑不同
 if i=j or i+j=8 and a(i,j) mod 3=0 then
 
 
是先计算and,后计算or
所以结果不一样
改为
 if (i=j or i+j=8 )and a(i,j) mod 3=0 then
就跟后面的一样了
其他:在条件判断里,and比or优先,所以and两边的条件先被判断,再作为条件与or另一边判断,所以代码一里的条件变成当i=j时不需要整除3这个条件,counter也会加一。 1改成if (i=j Or i+j=8)  and a(i,j)mod 3 =0 then
2正确 

上一个:如何用纯代码代替Timer控件?
下一个:VB题目一道

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,