vfp程序改错

vfp程序改错,第1张

试试下面的吧!

DO CheckPrime WITH 50,10

PROCEDURE CheckPrime

PARA nCount,nColCount

CLEAR

i=1

n=2

DO WHILE i<=nCount

isPrime=.t.

FOR j=2 TO INT(SQRT(n))

*IF j%n=0 &&错

IF n%j=0

isPrime=.f.

EXIT

ENDIF

ENDFOR

IF isPrime

??n

IF i%nColCount=0

?

ENDIF

*i=i+1 &&位置错

ENDIF

i=i+1 &&移至此

n=n+1

ENDDO

ENDFUNC

(四)

PrintPrime(400,5) &&小于自然数400的素数并按每行5个素数打印

PROCEDURE PrintPrime

PARA nMax,ncol

i=0 &&记录素数个数

FOR n=2 TO nMax

flag=.t.

FOR j=2 TO INT(SQRT(n))

IF n%j=0

flag=.f.

LOOP

ENDI

ENDFOR

IF flag

??n

i=i+1

*IF MOD(i,ncol)<>0 &&错

IF MOD(i,ncol)=0

?

ENDIF

ENDIF

ENDFOR

ENDPROC

--------------------

前一题是只改了两处;后一题改一处就可通过了!

你试试!

原代码排版后如下:

nnumber=437

cresult=space(0)

if nnumber#0

do while nnumber>0

n=mod(nnumber,16)

nnumber=int(nnumber/16)

if n<10

cresult=str(n,1)+cresult

else

cresult=chr(asc('A')+n)+cresult

endif

enddo

else

cresult=0

endif

wait wind "十六进制数表示为"+cresult

只要将这句

cresult=chr(asc('A')+n)+cresult

改成

cresult=chr(asc('A')+n-10)+cresult

里面要减去10, 因为只有n=10,才是A


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7773313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存