C 为什么我没有得到素数,而是得到从2到98的所有数字? #包括 int main() { int i,p,f=1; printf(“直到99:\n的素数”); 对于(p=2;p

C 为什么我没有得到素数,而是得到从2到98的所有数字? #包括 int main() { int i,p,f=1; printf(“直到99:\n的素数”); 对于(p=2;p,c,if-statement,for-loop,C,If Statement,For Loop,if(f=1)应该读为if(f==1)。赋值总是计算为真。if(f=1)应该读为if(f==1)。赋值总是计算为真。这里有两个错误 if(f=1)需要是if(f==1)或者只是if(f)。记住,=是赋值;=是比较 您需要在每次循环迭代结束时将f设置回1。否则f将永远是0,如果第一次输入了-语句,则将只打印第一个素数 int main(){ int i,p,f=1; printf(“直到99:\n的素数”); 对于(p=2;p

if(f=1)
应该读为
if(f==1)
。赋值总是计算为真。

if(f=1)
应该读为
if(f==1)
。赋值总是计算为真。

这里有两个错误

  • if(f=1)
    需要是
    if(f==1)
    或者只是
    if(f)
    。记住,
    =
    是赋值;
    =
    是比较
  • 您需要在每次循环迭代结束时将
    f
    设置回
    1
    。否则
    f
    将永远是
    0
    ,如果第一次输入了
    -语句,则将只打印第一个素数

  • int main(){
    int i,p,f=1;
    printf(“直到99:\n的素数”);
    对于(p=2;p<99;p++){
    对于(i=2;i
    到99的素数: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    这里有两个错误

  • if(f=1)
    需要是
    if(f==1)
    或者只是
    if(f)
    。记住,
    =
    是赋值;
    =
    是比较
  • 您需要在每次循环迭代结束时将
    f
    设置回
    1
    。否则
    f
    将永远是
    0
    ,如果第一次输入了
    -语句,则将只打印第一个素数

  • int main(){
    int i,p,f=1;
    printf(“直到99:\n的素数”);
    对于(p=2;p<99;p++){
    对于(i=2;i
    到99的素数: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    伙计们搞错了,除了fGuys中的条件运算符搞错了,除了fts中的条件运算符。这个问题似乎离题了,因为它是基于一个拼写错误而提出的,与未来的读者没有任何关系。@Josh Caswell有比这个稍多的拼写错误,但你是对的,它可能与一个“未来不会发生任何错误。这种类型的多次错误实际上只会降低有用性的可能性,@arshajii,因为其他人做出相同组合的可能性会降低。@JoshCaswell我同意,并投票决定相应地关闭。如果你可以做
    if(1==f)
    而不是
    if(f==1)
    然后拼写错误的
    =
    而不是
    =
    将给出一个错误阅读:这个问题似乎是离题的,因为它是基于一个拼写错误,与未来的读者没有任何关系。@JoshCaswell有一个略多于一个的拼写错误,但你是对的,它可能与任何人都没有多大关系e未来。这种类型的多个错误实际上只会降低有用性的可能性,@arshajii,因为其他人做出相同组合的可能性会降低。@JoshCaswell我同意,并投票决定相应地关闭。如果你可以做
    if(1==f)
    而不是
    if(f==1)
    然后拼写错误的
    =
    而不是
    =
    将给出一个错误读数:
    # include <stdio.h>
    
    int main()
    {
        int i,p,f=1;
        printf("Prime Numbers till 99: \n");
        for (p=2;p<99;p++)
        {
            for (i=2;i<p;i++)
                if(p%i==0)
                {
                    f=0;
                    break;
                }
    
            if(f=1)
                printf("%d ",p);
        }
        return 0;
    }
    
    int main() { 
        int i, p, f = 1;
        printf("Prime Numbers till 99: \n");
    
        for (p = 2; p < 99; p++) {      
            for (i = 2; i < p; i++) {
                if (p%i == 0) {
                    f = 0;
                    break;
                }
            }
    
            if (f) {  // here
                printf("%d ", p);
            }
    
            f = 1;  // and here
        }
    
        return 0;
    }
    
    Prime Numbers till 99: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97