| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1073 人关注过本帖
标题:求教C语言问题(答案不对)
只看楼主 加入收藏
小戏
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-7-11
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:15 
求教C语言问题(答案不对)
#incl<stdio.h>
void main()
{
int i,n,a=1;
printf("100之内的素数是:\n");
for(n=2;n<100;n++)
{
for(i=2;i<n;i++)
if(n%i==0)
a=0;
if(a)
printf("% d",n);
}
printf("\n");
}
搜索更多相关主题的帖子: 答案 C语言 
2012-07-12 21:10
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:2 
printf("% d",n);   可以这么写?
2012-07-12 21:21
…简式…
Rank: 2
等 级:论坛游民
帖 子:17
专家分:31
注 册:2012-7-4
收藏
得分:0 
#include
void main()
{
int i,n,a=1;
printf("100之内的素数是:\n");
for(n=2;n<100;n++)
{
  for(i=2;i<N;I++)
      if(n%i==0)
      a=0;
      if(a)
      printf("%d ",n);
      a=1;    //你少了这个
}
printf("\n");
}
2012-07-12 21:28
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:0 
回复 3楼 …简式…
头文件都没有,能编译通过?

还有,你的第2个for貌似写的有点不对。
2012-07-12 21:30
…简式…
Rank: 2
等 级:论坛游民
帖 子:17
专家分:31
注 册:2012-7-4
收藏
得分:2 
#include<stdio.h>
void main()
{
int i,n,a=1;
printf("100之内的素数是:\n");
for(n=2;n<100;n++)
{
  for(i=2;i<n;i++)
      if(n%i==0)
      a=0;
      if(a)
      printf("%d ",n);
      a=1;
}
printf("\n");
}
我编译过了。。。刚刚复制有问题,不信你可以试试。。。
2012-07-12 21:34
奋斗猪
Rank: 2
来 自:奋斗的途中
等 级:论坛游民
帖 子:43
专家分:91
注 册:2012-7-4
收藏
得分:2 
#incl<stdio.h> //include
void main()
{
int i,n,a=1;
printf("100之内的素数是:\n");
for(n=2;n<100;n++)
{
for(i=2;i<n;i++)
if(n%i==0)
a=0;//这里a屏蔽了外面的a=1,因此当循环走到第一次a=0时,a以后的值就一直是0,这样就失去了通过a来判断的目的。因此需要在循环里再对a赋值为1
if(a)
printf("% d",n);//"%d "
a=0;
}
printf("\n");
}

或者你也可以不通过a来判断,可以通过i和n的比较来判断是否从2除到n-1

#incl<stdio.h>
void main()
{
  int i,n;
  printf("100之内的素数是:\n");
  for(n=2;n<100;n++){
    for(i=2;i<n;i++){
      if(n%i==0)
      break;//当n被整除或者i<n时退出该循环
   
}
  }
  if(i=n)//此句表明上一个循环是i<n时才退出的。注意这里是i=n而非i=n-1
  printf("%d ",n);
}

[ 本帖最后由 奋斗猪 于 2012-7-13 00:44 编辑 ]

贵在坚持!
2012-07-13 00:43
qiankai
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-4-22
收藏
得分:0 
#include<stdio.h>
 int main(void)
 {
 int i,n,a;
 printf("100之内的素数是:");
 for(n=2;n<100;n++){
 a = 1;
 for(i=2;i<n;i++){
 if(n%i==0){
 a = 0;
 }
 }
 if(a){
 printf("%d",n);
 printf("\n");
 }
 }
 return 0;
 }
这段代码是在你的代码的基础上修改而成,已运行成功,仅供参考。
2012-07-13 07:29
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:0 
回复 7楼 qiankai
我想问你一句 2是不是素数

喜欢睡觉 却经常熬夜
2012-07-13 09:26
邱威
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:136
专家分:351
注 册:2012-3-28
收藏
得分:2 
给一个你能理解的。。。
#include <stdio.h>
void main()
{
    int i,j;
    printf("100之间的素数是:");
    for(i=2;i<=100;i++)
    {
        for(j=2;j<=i;j++)      
            if(i%j==0)break;
                if(j>=i)
                    printf("%d",i);
    }
}
2012-07-13 11:20
菜鸟0
Rank: 2
等 级:论坛游民
帖 子:37
专家分:91
注 册:2012-6-20
收藏
得分:2 
其实判断素数不用判断那么多的,n以内的从1判断到根号n就可以了,不必到n...
2012-07-13 13:47
快速回复:求教C语言问题(答案不对)
数据加载中...
 
   



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

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