一道vfp求解释~为什么?很急!SettalkoffClea-查字典问答网
分类选择

来自刘海峰的问题

  一道vfp求解释~为什么?很急!SettalkoffCleaInput‘请输入1到9之间的数=’tonK=10J=1Fori=1ton?space(k)Forf=1to2*i-1?substr(alltrim(str(j),),1,1)Endif?Ifi%2=0K=k+1J=j-2ElseK=k-1J=j+2EndifEndforSettalkon当n输入2,结果是

  一道vfp求解释~为什么?很急!

  Settalkoff

  Clea

  Input‘请输入1到9之间的数=’ton

  K=10

  J=1

  Fori=1ton

  ?space(k)

  Forf=1to2*i-1

  ?substr(alltrim(str(j),),1,1)

  Endif

  ?

  Ifi%2=0

  K=k+1

  J=j-2

  Else

  K=k-1

  J=j+2

  Endif

  Endfor

  Settalkon

  当n输入2,结果是

  1

  333,当输入3,结果是

  1

  333

  11111

1回答
2020-06-28 20:13
我要回答
请先登录
黄琛泽

  Settalkoff

  Clea

  Input‘请输入1到9之间的数=’ton

  K=10

  J=1

  Fori=1ton&&根据n的值来确定i大循环的次数,同时也是显示值有多少行

  ?space(k)&&同一行显示k个空格.后面k的值会根据i是奇偶数而轮番改变,所以后面每换一行空格数会各是9个、10个、9个、10个.目地就是在显示具体数字j的前面有这么多个空格.

  Forf=1to2*i-1&&根据i的不同,f循环次数为从1到1/3/5/7等等次数,

  ?substr(alltrim(str(j),),1,1)&&就是同一行连续显示多次j的值,具体次数就是2*i-1那么多个.所以后面输入2时,会有333共3个3;输入3时,会有11111共5个1.3个函数,是将数字j,转换成字符j,不要多余空格;j值大于9时,只取第一个数字(字符).

  Endif&&这里应该是写错了,应该是Endfor

  ?&&后面要再继续的话,会换一行再显示.相当于?""

  Ifi%2=0&&判断i是否被2整除,即i是否是偶数

  K=k+1&&

  J=j-2&&

  Else&&i是奇数的话

  K=k-1

  J=j+2

  Endif&&上面几句,i值总会是从1到n地进行奇数偶数轮番变化,k值也依次为10/9/10/9...j值也依次为1/3/1/3/.这样的变化

  Endfor

  Settalkon

  *一个学习技巧:将每个变量n/k/j/i/f的值分行写在草稿纸上,每执行一句命令后,都将改变了的值重新记录下来,作为下一步的判断.

2020-06-28 20:16:18

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •