| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6945 人关注过本帖
标题:已知函数头为“int prime(int n)”,函数prime的功能:如果n是质数,返回 ...
只看楼主 加入收藏
krisdei
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-4-6
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:8 
已知函数头为“int prime(int n)”,函数prime的功能:如果n是质数,返回1,否则,返回0。编写调用函数prime输出100以内所有的质数,每行
#include<stdio.h>
#include<math.h>
int main(void)
{
    int prime(int n);
    int i,x=2,flag=1;
    for(i=1;i<=100;i++)
    {
            if(flag==1)
                printf("%d",x);
            printf("\n");   
            if(flag==0)
                break;
    }
    return 0;
}
int prime(int n)
{
    int x,i,m,flag1=1;
    for(i=2;i<=100;i++)
    {
        m=(int)(sqrt(x)+1);
        x++;
        if(m%i==0)
            break;
        if(i==m)
            flag1=1;
        else
            flag1=0;
    }
    return flag1;
}
哪里出错了编译运行都可以就是结果是错的,全是22222......
望大神指导,
感激
搜索更多相关主题的帖子: 函数 int 质数 返回 输出 
2018-04-21 13:29
krisdei
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-4-6
收藏
得分:0 
每行输出五个
2018-04-21 13:30
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
收藏
得分:5 
你的for循环里没有调用prime
2018-04-21 13:59
krisdei
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-4-6
收藏
得分:0 
回复 3楼 李晨经纪人
怎么调用 看了半天 不知道请教一下
2018-04-22 12:11
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:5 
#include<stdio.h>
#include<math.h>
int prime(int n);
int main(void)
{
    int i,x=2,flag=1;
    for(i=1;i<=100;i++)
    {
            flag=prime(i);
            if(flag==1)
                printf("%d",x);
            printf("\n");   
            if(flag==0)
                break;
    }
    return 0;
}
int prime(int n)
{
    int x,i,m,flag1=1;
    for(i=2;i<=100;i++)
    {
        m=(int)(sqrt(x)+1);
        x++;
        if(m%i==0)
            break;
        if(i==m)
            flag1=1;
        else
            flag1=0;
    }
    return flag1;
}

[此贴子已经被作者于2018-4-22 12:26编辑过]


穷举是最暴力的美学
2018-04-22 12:15
krisdei
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-4-6
收藏
得分:0 
回复 5楼 nosnoy
还是错的 。。。。。
2018-04-22 12:24
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
int prime(int n)
{
    int x,i,m,flag1=1;
    for(i=2;i<=100;i++)
    {
        m=(int)(sqrt(x)+1);
        x++;//你每一次x的值在改变值怎么出的了值
             //然后函数里的x是形参变量
           // 相当于你每一次都是从2开始不就都输出的是2了
      if(m%i==0)
            break;
        if(i==m)
            flag1=1;
        else
            flag1=0;
    }
    return flag1;
}

穷举是最暴力的美学
2018-04-22 12:35
krisdei
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-4-6
收藏
得分:0 
回复 7楼 nosnoy
那该怎么改呢
2018-04-22 13:03
krisdei
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-4-6
收藏
得分:0 
回复 7楼 nosnoy
可是质数是大于1从2开始的数啊
2018-04-22 13:07
快速回复:已知函数头为“int prime(int n)”,函数prime的功能:如果n是质数, ...
数据加载中...
 
   



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

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