鱼C论坛

 找回密码
 立即注册
查看: 4039|回复: 7

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

[复制链接]
发表于 2013-10-23 10:13:54 | 显示全部楼层 |阅读模式
3鱼币
#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后运行时程序什么都运行不出现素数*/ UG]6(BQ6~M{%[VLS0NEC2[T.jpg

最佳答案

查看完整内容

错误原因:judge一次变0后不会变回1, 看我上面的代码吧。。。你的思路很乱啊。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-23 10:13:55 | 显示全部楼层
错误原因:judge一次变0后不会变回1,

看我上面的代码吧。。。你的思路很乱啊。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-23 11:31:53 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<math.h>
  3. void main()
  4. {
  5.         int m,i,judge=1;
  6.         printf("以下我们将为您显示出来从100-200之间所有的素数!\n");
  7.         for(m=100 ; m<=200 ; m++)
  8.         {
  9.                 for(i=2 ; i<=sqrt(m) ; i++)
  10.                 {        if(m%i==0);
  11.                         {        judge=0;
  12.                                 i=int(sqrt(m))+1;  /*这里改成break;*/
  13.                         }
  14.                 }
  15.                 if(judge==1)
  16.                         printf("%d\n",m);        
  17.         }
  18. }

复制代码
跳出循环直接用break;不就好了嘛!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-23 11:40:16 | 显示全部楼层
  1. #include <stdio.h>

  2. int jud(int a)
  3. {
  4.         int j, k=0;

  5.         for(j=2; j<a; j++)
  6.         {
  7.                 if(a%j==0)
  8.                         break;
  9.                 else
  10.                         k+=1;
  11.         }
  12.         if(j==a)
  13.         {
  14.                 printf("%-5d", a);
  15.         }

  16. }

  17. main()
  18. {
  19.         int i;

  20.         for(i=101; i<201; i++)
  21.         {
  22.                 jud(i);       
  23.         }
  24. }
复制代码
贴上我自己的代码吧!{:1_1:}{:1_1:}{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-23 11:45:41 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-23 11:49:31 | 显示全部楼层
  1. Status SuShuTest2(int num){
  2.         int i;
  3.         int d=(int)sqrt((double)num);
  4.         for(i=2;i<=d;i++){
  5.                 if(num%i==0)
  6.                         return NO;
  7.         }
  8.         return YES;
  9. }
复制代码
你的代码有点乱,这是我以前写的,很简单。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-23 12:13:33 | 显示全部楼层
支持楼上,简单
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-24 08:51:09 | 显示全部楼层
你直接用continue 不就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 20:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表