| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 773 人关注过本帖
标题:[求助]两种方法找素数的程序错在哪?
只看楼主 加入收藏
loveonline
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-8-25
收藏
 问题点数:0 回复次数:2 
[求助]两种方法找素数的程序错在哪?

程序如下:
class number
{
protected:
int m_number;
public:
int getnumber(){ return m_number;}
void setnumber(int n){ m_number=n;}
void prime();
};
#include<iostream.h>
void class number::prime()
{
int i;
for(i=2;i<m_number;i++)
{if(m_number%i==0)break;}
if(m_number==i)
cout<<m_number<<" is prime."<<endl;
}
class dernumber:public number
{
public:
void prime();
};

#include<math.h>
void dernumber::prime()
{
double sqrtm=sqrt(m_number);
int i;
for(i=2;i<=sqrtm;i++)
{if(m_number%i==0)break;}
if(sqrtm<i)
cout<<m_number<<" is prime.\n";
}
#include<time.h>
void main()
{
number anum;
dernumber adernum;
clock_t start,finish;
double elapsed_time1,elapsed_time2;
int i;
unsigned int max(100000);
time(&start);
for(i=10000;i<max;i++)
{ anum.setnumber(i);
anum.prime();}
time(&finish);
elapsed_time1=difftime(finish,start);
time(&start);
for(i=10000;i<=max;i++)
{ adernum.setnumber(i);
adernum.prime();}
time(&finish);
elapsed_time2=difftime(finish,start);
cout<<"delay for using number class:"<<elapsed_time1<<" seconds"<<endl;
cout<<"delay for using adernu class:"<<elapsed_time2<<" seconds"<<endl;
}


编译器信息:
--------------------Configuration: 02 - Win32 Debug--------------------
Compiling...
prime.cpp
E:\VC\02\prime.cpp(26) : error C2653: 'dernumber' : is not a class or namespace name
E:\VC\02\prime.cpp(28) : error C2065: 'm_number' : undeclared identifier
E:\VC\02\prime.cpp(39) : error C2065: 'dernumber' : undeclared identifier
E:\VC\02\prime.cpp(39) : error C2146: syntax error : missing ';' before identifier 'adernum'
E:\VC\02\prime.cpp(39) : error C2065: 'adernum' : undeclared identifier
E:\VC\02\prime.cpp(45) : warning C4018: '<' : signed/unsigned mismatch
E:\VC\02\prime.cpp(51) : warning C4018: '<=' : signed/unsigned mismatch
E:\VC\02\prime.cpp(52) : error C2228: left of '.setnumber' must have class/struct/union type
E:\VC\02\prime.cpp(53) : error C2228: left of '.prime' must have class/struct/union type
Error executing cl.exe.

prime.obj - 7 error(s), 2 warning(s)



我始终找不出错误在哪,高手能不能帮下忙,谢了先。(我学C++刚三天,可能是低级错误)。

搜索更多相关主题的帖子: 素数 number prime void int 
2006-08-31 02:10
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

#include 雜亂無章, 應該將 #include 放到頂部去,
-------------------------------------------------------------
導致這些錯誤的原因在於:
void class number::prime()
{
int i;
for(i=2;i<m_number;i++)
{if(m_number%i==0)break;}
if(m_number==i)
cout<<m_number<<" is prime."<<endl;
}


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-31 02:47
loveonline
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-8-25
收藏
得分:0 

太感谢楼上的回答了, 把 class去掉就行了。

2006-08-31 10:06
快速回复:[求助]两种方法找素数的程序错在哪?
数据加载中...
 
   



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

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