vb中的数值问题
发布网友
发布时间:2022-05-10 15:23
我来回答
共2个回答
热心网友
时间:2023-10-13 11:49
闲来没事,解释下此程序。A=1:K=fun(fun(A,A),A)。
所以先求括号内的fun(A,A).
这是第一次调用fun(1,1),注意函数内的K是静态的,不会影响到主程序中的K(屏蔽作用)。
函数内,开始:k=0;
K=K+X+Y //K=0+1+1=2
X=X+y // x=1+1=2
Y=Y+k // y=1+2=3
fun=x+y //fun=2+3=5即返回值是5.
Print fun; x;y //输出第一行:5 2 3
fun(1,1)=5代入:k=fun(fun(a,a),a)就是求:K=fun(5,1) 注意此时实参: X=5,Y=1
因为K为静态变量,所以这时k还是为2.要特别注意的。所以
K=K+X+Y //K=2+5+1=8
X=X+y //x=5+1=6
Y=Y+k //y=1+8=9
fun=x+y //fun=6+9=15即返回值是15.
Print fun; x;y //输出第二行:15 6 9
所以主函数中 K=fun(fun(A,A),A) 得K=15(函数内的k 与此无关)。
第三行:K=15
供参考,祝顺利。
热心网友
时间:2023-10-13 11:50
x=2 y=1没毛病,y的值哪里有变化了?追问我在vb里输入了这段代码,y在x=x+y执行了之后,变成了2