有一个给定的伪代码。
int Function(X : array[P..Q] of integer)
1 maxSoFar = 0
2 for L = P to Q
我正在使用C,并试图将其更改为C++代码。
我之所以挣扎于此,是因为我不知道如何在循环中从"p"开始表达。即使没有参数,我也不知道如何在初始化之前做到这一点。
int Function(vector<int> X)
{
int maxSoFar = 0;
for (int I = 0; I < X.size(); I++) ;
}
这就是我所做的。我想知道它和伪代码是否相同。
您可以将向量大小除以2:
#include <vector>
#include <iostream>
using namespace std;
int f(vector<int> v) {
int maxSoFar = 0;
int len = v.size();
for (int i = len / 2; i < len; i++) { // i = len / 2, starts from the middle
maxSoFar += v[i];
cout << v[i] << ' ';
cout << maxSoFar << endl;
}
}
int main(void) {
vector<int> v = {1, 3, 5};
f(v);
}
输出:
3 3
5 8
您应该仔细查看维基百科上的for循环:for (initialization; break condition; incrementation)
#include<iostream>
using namespace std;
int main()
{
int i,n;
cout<<"enter the number of elements : ";
cin>>n;
int a[n];
cout<<endl<<"enter the value of this array : ";
for(i=0;i<n;i++)
{
cin>>a[i];
}
cout<<endl<<"print the last half elements of this array : ";
for(i=(n/2);i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}