C++的问题,有关函数和向量的

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:27:26
Pentagonal数列的求值公式是Pn=n*(3n-1)/2,借此产生1,5,12,22,35等元素之。试定义一个函数,利用上述公式,将产生的元素值置入用户传入的VECTOR之中,元素数目由用户指定。请检查元素数目的有效性(太大则可能引发OVERFLOW问题)。接下来攒写第二个函数,能够将所接获的VECTOR的所有元素一一印出。此函数的第二参数接受一个字符串,表示储存于VECTOR内的数列的类型。最后再写一个MAIN(),测试上述两个函数。

要过程

#include <iostream>
#include <vector>

using namespace std;

#define MAX_N 100

void func1(int n, vector<int>& v)
{
v.clear(); // 清空

for(int i=1; i<=n; i++)
{
v.push_back( i*(3*i-1)/2 );
}
}

//“此函数的第二参数接受一个字符串,表示储存于VECTOR内的数列的类型”
//没看明白,所以没写
void func2(vector<int>& v)
{
for(int i=0; i<v.size(); i++)
cout << v[i] << endl;
}

int main()
{
int n;
vector<int> v;

while(1)
{
cout << "输入数列的元素个数:";
cin >> n;
if(n>MAX_N || n<1)
{
cout<<"数值太大或太小。重新输入。" << endl;
}
else
break;
}

func1(n,v);

func2(v);

return 0;
}