| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2251 人关注过本帖, 1 人收藏
标题:bool函数的使用有问题,求大神帮忙
只看楼主 加入收藏
加油胡椒粉
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2018-12-13
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:4 
bool函数的使用有问题,求大神帮忙
#include<stdio.h>
#include<time.h>
#include<math.h>
bool prime1(long n)//方法1:素数判断(error指向这)
{
    long i;
    for(i=2;i<n;i++)
   
        if(n%i==0)
            return false;
        return true;
   
}
void PrimeTime1(long n)
{
    clock_t t;
    long sum=0,i;
    for(i=2;i<=n;i++)
    {
        if(prime1(i)==true)
            sum++;
    }
    t=clock()-t;
    printf("方法1:\n");
    printf("结果:2-%d的素数个数:%d\n",n,sum);
    printf("用时:%lf秒\n",((float)t)/CLOCKS_PER_SEC);

}
bool prime2(long n)//方法2:素数判断(error指向这)
{
    long i;
    for(i=2;i<=(int)sqrt(n);i++)
   
        if(n%i==0)
            return false;
        return true;
   
}
void PrimeTime2(long n)
{
    clock_t t;
    long sum=0,i;
    for(i=2;i<=n;i++)
    {
        if(prime2(i)==true)
            sum++;
    }
    t=clock()-t;
    printf("方法2:\n");
    printf("结果:2-%d的素数个数:%d\n",n,sum);
    printf("用时:%lf秒\n",((float)t)/CLOCKS_PER_SEC);
}
int main()
{
    long n;
    printf("n(大于10000)");
    scanf("%d",&n);
    if(n<10000)
        return 0;
    PrimeTime1(n);
    PrimeTime2(n);
    return 1;
}
它下面的显示(我用的VC++6.0)
error C2059: syntax error : 'type'
error C2059: syntax error : ';'
error C2061: syntax error : identifier 'prime1'
搜索更多相关主题的帖子: bool return printf sum long 
2019-09-15 20:24
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:4 
2019-09-15 21:08
星泪成寒
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:76
专家分:539
注 册:2013-5-19
收藏
得分:8 
C没有bool这个关键字,所以在头文件下面加下面几行
#define bool int
#define true 1
#define false 0

2019-09-15 21:17
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:3 
bool是布尔变量,但是C语言里好像没有这个定义类型(关键字)
如果是用C语言编译运行
判断真假可以用int类型中的1和0来表示(非零为真)
2019-09-15 21:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdbool.h>

bool prime1( unsigned long n )
{
    if( n < 2 )
        return false;

    for( unsigned long i=2; i!=n; ++i )
        if( n%i == 0 )
            return false;
    return true;
}

bool prime2( unsigned long n )
{
    if( n<2 || (n!=2 && n%2==0) )
        return false;

    for( unsigned long i=3; i<=n/i; i+=2 )
        if( n%i == 0 )
            return false;
    return true;
}

void timeit( bool (*pprime)(unsigned long n), unsigned long n )
{
    unsigned long count = 0;
    clock_t t = clock();
    for( unsigned long i=1; i!=n+1; ++i )
        if( (*pprime)(i) )
            ++count;
    t = clock() - t;
    printf( "获得%lu个素数, 耗时%.2f秒\n", count, t*1.0/CLOCKS_PER_SEC );
}

int main( void )
{
    unsigned long n;
    if( 1 != scanf("%lu",&n) )
        return 1;

    puts( "方法一:" );
    timeit( &prime1, n );
    puts( "方法二:" );
    timeit( &prime2, n );
    return 0;
}
2019-09-16 09:03
快速回复:bool函数的使用有问题,求大神帮忙
数据加载中...
 
   



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

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