C++的高手们,麻烦帮忙啊~~

ivy_yang 2006-03-08 09:37:11
刚开始学c++,在essential C++第2章的习题中,发现原答案不能编译,原代码是这样:
#include<vector>
#include<string>
#include<iostream>

using namespace std;

bool calc_elements(vector<int> &vec,int pos);
void display_elems(vector<int> &vec,const string &title,ostream &os=cout);

int main()
{
vector<int> pent;
const string title("pentagonal numeric series");

if(calc_elements(pent,0))
display_elems(pent,title);

if(calc_elements(pent,8))
display_elems(pent,title);

if(calc_elements(pent,14))
display_elems(pent,title);

if(calc_elements(pent,138))
display_elems(pent,title);
}

bool calc_element(vector<int> &vec,int pos)
{
if(pos<=0 || pos>64)
{
cerr<<"sorry. invalid position:"<<pos<<endl;
return false;
}
for(int ix=vec.size()+1;ix<=pos;++ix)
vec.push_back((ix*(3*ix-1))/2);
return true;
}

void display_elems(vector<int> &vec,const string &title,ostream &os)
{
os<<'\n'<<title<<"\n\t";
for(int ix=0;ix<vec.size();++ix)
os<<vec[ix]<<' ';
os<<endl;
}

错误是这样的:
...全文
209 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SK_MadFrog 2006-03-09
  • 打赏
  • 举报
回复
编程需要细心和耐心,天赋在其次.
金笛子 2006-03-09
  • 打赏
  • 举报
回复
楼主 刚刚学就搞STL了啊 呵呵 真强
fiftymetre 2006-03-08
  • 打赏
  • 举报
回复
bool calc_elements(vector<int> &vec,int pos);

bool calc_element(vector<int> &vec,int pos)


还真没在意呵呵
ivy_yang 2006-03-08
  • 打赏
  • 举报
回复
嗯嗯,谢谢啦
我还得好好努力~~~
benlei999 2006-03-08
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include<vector>
#include<string>
#include<iostream>
using namespace std;

bool calc_elements(vector<int> &vec,int pos);
void display_elems(vector<int> &vec,const string &title,ostream &os=cout);

int main()
{
vector<int> pent;
const string title("pentagonal numeric series");

if(calc_elements(pent,0))
display_elems(pent,title);

if(calc_elements(pent,8))
display_elems(pent,title);

if(calc_elements(pent,14))
display_elems(pent,title);

if(calc_elements(pent,138))
display_elems(pent,title);
return 0;
}

bool calc_elements(vector<int> &vec,int pos)//。。。。。。。这儿少了个s
{
if(pos<=0 || pos>64)
{
cerr<<"sorry. invalid position:"<<pos<<endl;
return false;
}
for(int ix=vec.size()+1;ix<=pos;++ix)
vec.push_back((ix*(3*ix-1))/2);
return true;
}

void display_elems(vector<int> &vec,const string &title,ostream &os)
{
os<<'\n'<<title<<"\n\t";
for(int ix=0;ix<vec.size();++ix)
os<<vec[ix]<<' ';
os<<endl;
}
****************
让我还找啊!
zhNKUjw 2006-03-08
  • 打赏
  • 举报
回复
警告是因为定义了int型的main函数,应该返回一个整型值;
错误是因为bool calc_element(vector<int> &vec,int pos)
少写了格s呀,应该是calc_elements.
马虎,是程序员的大敌呀!
ivy_yang 2006-03-08
  • 打赏
  • 举报
回复
--------------------Configuration: ex2_2sd - Win32 Debug--------------------
Compiling...
ex2_2sd.cpp
E:\study\C++\ex2_2sd.cpp(26) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Linking...
ex2_2sd.obj : error LNK2001: unresolved external symbol "bool __cdecl calc_elements(class std::vector<int,class std::allocator<int> > &,int)" (?calc_elements@@YA_NAAV?$vector@HV?$allocator@H@std@@@std@@H@Z)
Debug/ex2_2sd.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

ex2_2sd.exe - 2 error(s), 1 warning(s)


请问是怎么回事啊?

64,681

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧