| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1445 人关注过本帖, 1 人收藏
标题:一找质数程序,但有问题,求解
只看楼主 加入收藏
维海
Rank: 2
等 级:论坛游民
帖 子:23
专家分:53
注 册:2010-11-25
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:6 
一找质数程序,但有问题,求解
#include <stdio.h>
#include <stdlib.h>

void Sousnum(int a);
int main(void)
{
    int a;
    Sousnum(a);
    return 0;
}
void Sousnum(int a)
{
  int ch=2;
  int yu=0;
  int i=0;
  for(a=100;a<=200;a++)
  {
      for(;ch<a;ch++)
    {
      yu=a%ch;
      if(yu==0)
      {
         i++;
      }
    }
    if(i==0)
    {
      printf("%d\t",yu);
    }
  }

}
搜索更多相关主题的帖子: 质数 求解 
2010-11-25 17:43
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:5 
主函数中a没有赋值,就作为参数调用了函数,这样是不行的

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-11-25 20:03
lin630784732
Rank: 2
等 级:论坛游民
帖 子:13
专家分:21
注 册:2010-11-11
收藏
得分:7 
#include <stdio.h>
#include <stdlib.h>
void Sousnum();
int main()
{  
   Sousnum();
}
void Sousnum()
{
  int a;
  int ch;
  int yu=0;
  int i=0;
  for(a=100;a<=200;a++)
  {
       i=0;//你漏了这个
      for(ch=2;ch<a;ch++)
     {
      yu=a%ch;
      if(yu==0)
      {
         i++;
      }
     }
    if(i==0)
    {
      printf("%d\t",a);
    }
  }

}


[ 本帖最后由 lin630784732 于 2010-11-25 20:13 编辑 ]
2010-11-25 20:11
维海
Rank: 2
等 级:论坛游民
帖 子:23
专家分:53
注 册:2010-11-25
收藏
得分:0 
谢谢你,回复 3楼 lin630784732
我昨天晚上和同学商量,也找到了这些错误,真谢谢你,我大一的C初学者,以后还希望多多指导哦
2010-11-26 09:13
火龙果
Rank: 2
等 级:论坛游民
帖 子:42
专家分:79
注 册:2010-6-26
收藏
得分:8 
#include <stdio.h>
#include <stdlib.h>

void Sousnum(int a);
int main(void)
{
    int a=100;
    Sousnum(a);
    return 0;
}
void Sousnum(int a)
{
  int ch=2;
  int yu=0;
  for(;a<=200;a++)
  {
      int i=0;//这里是让程序跳出来之后立刻初始化i,不然的话永远没有输出了
      for(;ch<a;ch++)
    {
      yu=a%ch;
      if(yu==0)
      {
         i++;
      }break;//这里的break是让程序的效率高点的,如果有余数的话,那就肯定不是素数啦,继续循环也没什么意义了
    }
    if(i==0)
    {
      printf("%d\t",a);//你要输出的是a,不是yu这个余数
    }
  }

}
2010-11-26 10:08
维海
Rank: 2
等 级:论坛游民
帖 子:23
专家分:53
注 册:2010-11-25
收藏
得分:0 
谢谢你们哦
2010-11-26 19:57
维海
Rank: 2
等 级:论坛游民
帖 子:23
专家分:53
注 册:2010-11-25
收藏
得分:0 
回复 5楼 火龙果
#include <stdio.h>
#include <math.h>

void Sousnum(int a);
int main(void)
{
    int a=100;
    Sousnum(a);
    return 0;
}
void Sousnum(int a)
{
  int ch;
  int yu=0;
  for(;a<=200;a++)
  {
      int i=0;
      for(ch=2;ch<sqrt(a);ch++)
    {
      yu=a%ch;
      if(yu==0)
      {
         i++;
         break;/*break放外面的话,可能会导致只判断它是否能被2整除,不能则为质数,而判断出非质数的质数,我今天试了*/
      }
    }
    if(i==0)
    {
      printf("%d\t",a);
    }
  }

}
2010-11-27 13:11
快速回复:一找质数程序,但有问题,求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025508 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved