求1~100素数,为什么会出现j未被定义的错误,但是在C语言中这种逻辑有没有问题

img

因为j在for循环那声明的,到else后就出了作用域了。
在第4行添加一句: j = 2;
然后第8行的else删掉
第9行改成 if (j>c) :

最后3行,再缩进1层

img

就是作用域的问题,这样的不用纠结呀,C++的语法在有的版本中也需要在for之前定义的!

img

img

img


这两种改法都不太行😂

for i in range(2,101):
    c=int(i**0.5)
    isPrime = True
    for j in range(2,c+1):
        if i%j == 0:
            isPrime = False
            break
    if isPrime:
        print(i)

img