batcj1 发表于 2013-10-23 10:13:54

C语言输出素数的一个小问题!!新手

#include<stdio.h>
#include<math.h>
void main()
{
        int m,i,judge=1;
        printf("以下我们将为您显示出来从100-200之间所有的素数!\n");
        for(m=100 ; m<=200 ; m++)
        {
                for(i=2 ; i<=sqrt(m) ; i++)
                {        if(m%i==0);
                        {        judge=0;
                                i=int(sqrt(m))+1;/*这个是跳出循环的,为什么bug显示不能强制转换*/
                        }
                }
                if(judge==1)
                        printf("%d\n",m);       
        }
}
/*去掉int后运行时程序什么都运行不出现素数*/

my_angel 发表于 2013-10-23 10:13:55

错误原因:judge一次变0后不会变回1,

看我上面的代码吧。。。你的思路很乱啊。。。

平平常常丶 发表于 2013-10-23 11:31:53

#include<stdio.h>
#include<math.h>
void main()
{
      int m,i,judge=1;
      printf("以下我们将为您显示出来从100-200之间所有的素数!\n");
      for(m=100 ; m<=200 ; m++)
      {
                for(i=2 ; i<=sqrt(m) ; i++)
                {      if(m%i==0);
                        {      judge=0;
                              i=int(sqrt(m))+1;/*这里改成break;*/
                        }
                }
                if(judge==1)
                        printf("%d\n",m);      
      }
}

跳出循环直接用break;不就好了嘛!{:5_109:}

平平常常丶 发表于 2013-10-23 11:40:16

#include <stdio.h>

int jud(int a)
{
        int j, k=0;

        for(j=2; j<a; j++)
        {
                if(a%j==0)
                        break;
                else
                        k+=1;
        }
        if(j==a)
        {
                printf("%-5d", a);
        }

}

main()
{
        int i;

        for(i=101; i<201; i++)
        {
                jud(i);       
        }
}贴上我自己的代码吧!{:1_1:}{:1_1:}{:1_1:}

my_angel 发表于 2013-10-23 11:45:41

平平常常丶 发表于 2013-10-23 11:31 static/image/common/back.gif
跳出循环直接用break;不就好了嘛!

直接break不行的。。。。judge一次变成0后就不会改变了。。。

my_angel 发表于 2013-10-23 11:49:31

Status SuShuTest2(int num){
      int i;
      int d=(int)sqrt((double)num);
      for(i=2;i<=d;i++){
                if(num%i==0)
                        return NO;
      }
      return YES;
}你的代码有点乱,这是我以前写的,很简单。。。

随风听雨雪 发表于 2013-10-23 12:13:33

支持楼上,简单

牡丹花下死做鬼 发表于 2013-10-24 08:51:09

你直接用continue 不就好了
页: [1]
查看完整版本: C语言输出素数的一个小问题!!新手