如何打印代码循环的次数?

时间:2015-09-16 22:03:31

标签: c

我写了一个简单的代码,打印输入的数字中的所有素数。我想打印打印多少个素数。我认为它的打印(“%d”,c ++);但我不知道该把它放在哪里。我已经尝试在返回0之前把它放好;在素数方法结束但它不起作用。素数打印得很好,但计数器不打印。

    void main(void){
        int pri;
        scan("%d",&pri);
        prime(pri);    
    }

    void prime(int n){
        int m,i,c,x;

        for(m = 1;m<=n;m++){
            c = 0;
            for(i=2;i<=m/2;i++){
                if(m%i==0){
                    c++;
                    break;
                }
            }

            if(c==0 && m!= 1){
                printf("%d ",m);
            }          
        }  
        print("the count is: ");              
        print("%d",c);        
        return 0;


    }  

如果输入100,我希望输出为:

 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
 The count is 25. 

2 个答案:

答案 0 :(得分:0)

添加变量count,因为c不是您的计数。它是一个本地测试变量,是否已找到素数。在for循环前添加int count = 0;并在结尾处打印而不是c。在打印单个素数的if语句中,添加count++;

int n = 100; // for copy paste purposes

int m,i,c,x;
int count = 0;

for(m = 1;m<=n;m++){
    //c = 0;
    for(i=2;i<=m/2;i++){
        if(m%i==0){
            c++;
            break;
        }
    }

    if(c==0 && m!= 1){
        printf("%d ",m);
        count++;
    }
}
printf("\nthe count is: %d\n", count);

答案 1 :(得分:0)

你的程序应该处理很多事情,最重要的是它应该首先编译,我非常怀疑它在这一点上做了。以下是一个有效的例子,有修改

i

注意 - 更好地格式化密钥。