标题:想调用函 数isprime输出两正数之间的素数,每行五个,结果输出的是俩数之间 ...
只看楼主
阿盼
Rank: 1
等 级:新手上路
帖 子:21
专家分:4
注 册:2015-4-19
结帖率:88.89%
已结贴  问题点数:15 回复次数:8 
想调用函 数isprime输出两正数之间的素数,每行五个,结果输出的是俩数之间所有的数
#include<stdio.h>
int isprime(int n);
void main()
{
    int x,y,z,m;
    printf("please input two character:\n");
    scanf("%d%d",&x,&y);
    z=0;
    for(m=x;m<y;m++)
    {
      if(isprime(m))
          printf("%3d",m);
       z++;
       if(z%5==0)
           printf("\n");
    }
   
}
int isprime(int n)
{
    int i;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
        return n;
    }
}
搜索更多相关主题的帖子: please character 
2015-06-08 16:57
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
得分:6 
不是素数时函数返回非零的垃圾值
程序代码:
//想调用函 数isprime输出两正数之间的素数,每行五个,结果输出的是俩数之间所有的数
#include<stdio.h>
int isprime(int n);
void main()
{
    int x, y, z, m;
    printf("please input two character:\n");
    scanf("%d%d", &x, &y);
    z = 0;
    for (m = x; m<y; m++)
    {
        if (m != 1 && isprime(m))
        {
            printf("%3d", m);
            z++;
            if (z % 5 == 0)
                printf("\n");
        }
    }

}

int isprime(int n)
{
    int i;
    for (i = 2; i*i<=n; i++)
        if (n%i == 0)
            break;
    return i * i > n ? 1 : 0;        
}


人有多懒,编程就有多难。
2015-06-08 17:42
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:2 
帮你修正找素数的自定义函数,排序你自己慢慢想
int isprime(int n)
{
    int i;
    int prime=1;
    for(i=2;i*i<n;i++)
    {
        if(n%i==0)
        {
            prime=0;     
            break;
        }
    }
    return prime;
}
2015-06-08 17:55
阿盼
Rank: 1
等 级:新手上路
帖 子:21
专家分:4
注 册:2015-4-19
得分:0 
回复 3楼 hjx1120
最后为什么不是return  n 呢?它不是已经被定义了吗?
2015-06-08 17:58
阿盼
Rank: 1
等 级:新手上路
帖 子:21
专家分:4
注 册:2015-4-19
得分:0 
回复 2楼 TAAAAB
return i * i > n ? 1 : 0; 为什么最后是这种形式呀而不是return n?
2015-06-08 18:00
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:0 
回复 4楼 阿盼
额~!我弄了一个素数的标致,prime=1 就是素数  
m传到自定义函数isprime里
如果是素数就等于1,传出去,如果不是,就不管它
可能说的不清楚,请多指教
2015-06-08 18:07
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:7 
完整版本还是发你,不足之处请多指教
//BUG_1 输出素数排队的括号得改改
//BUG_2 判断素数方法得改改

#include<stdio.h>
int isprime(int n);
void main()
{
    int x,y,z,m;
    printf("please input two character:\n");
    scanf("%d%d",&x,&y);
    z=0;
    for(m=x;m<y;m++)
    {
      if(isprime(m))
      {
           printf("%5d",m);
            z++;
           if(z%5==0)
           {
                printf("\n");
         }
        
      }
         
    }
   
}
int isprime(int n)
{
    int i;
    int prime=1;
    for(i=2;i*i<n;i++)
    {
        if(n%i==0)
        {
            prime=0;
            break;
        }
    }
    return prime;
}


[ 本帖最后由 hjx1120 于 2015-6-8 18:20 编辑 ]
2015-06-08 18:18
阿盼
Rank: 1
等 级:新手上路
帖 子:21
专家分:4
注 册:2015-4-19
得分:0 
回复 7楼 hjx1120
谢谢
2015-06-08 18:55
nfeb
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-12-24
得分:0 
回复 3楼 hjx1120
不对吧,0,1,9也是素数了。
2016-01-08 21:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-446341-1-1.html




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

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