麻烦各位大侠帮忙看看什么问题
main.cpp:
#include<iostream>
#include"maxsubsum.h"
#include<vector>
using namespace std;
int main(void)
{
int num=0;
vector<int> a;
while(cin>>num)
{
a.push_back(num);
}
cin.clear();
cin.sync();
cout<<"最大子序列和为:"<<maxSubSum(a)<<endl;
return 0;
}
maxsubsum.h:
#ifndef MAXSUBSUM_H
#define MAXSUBSUM_H
#include<vector>
int max3(int a, int b, int c);
int maxSumRec(const vector<int> & a, int left, int right);
int maxSubSum(const vector<int> & a);
#endif
maxsubsum.cpp:
#include"maxsubsum.h"
#include<vector>
int max3(int a, int b, int c)
{
if(a>b)
{
if(a>c)
return a;
else
return c;
}
else
{
if(b>c)
return b;
else
return c;
}
}
int maxSumRec(const vector<int> & a, int left, int right)
{
if(left==right) //Base case
if(a[left]>0)
return a[left];
else
return 0;
int center=(left+right)/2;
int maxLeftSum=maxSumRec(a,left,center);
int maxRightSum=maxSumRec(a,center+1,right);
int maxLeftBorderSum=0,leftBorderSum=0;
for(int i=center; i>=left;i--)
{
leftBorderSum+=a[i];
if(leftBorderSum>maxLeftBorderSum)
maxLeftBorderSum=leftBorderSum;
}
int maxRightBorderSum=0, rightBorderSum=0;
for( int j=center+1; j<=right; j++)
{
rightBorderSum+=a[j];
if(rightBorderSum>maxRightBorderSum)
maxRightBorderSum=rightBorderSum;
}
return max3(maxLeftSum, maxRightSum, maxLeftBorderSum+maxRightBorderSum);
}
int maxSubSum(const vector<int> & a )
{
return maxSumRec( a, 0, a.size()-1 );
}
BUG:
错误 1 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\datastructure\qhx521\qhx521\maxsubsum.h 5
错误 3 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\datastructure\qhx521\qhx521\maxsubsum.h 6
错误 5 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\datastructure\qhx521\qhx521\maxsubsum.cpp 24
错误 23 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\datastructure\qhx521\qhx521\maxsubsum.cpp 54
错误 28 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\datastructure\qhx521\qhx521\maxsubsum.h 5
错误 30 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\datastructure\qhx521\qhx521\maxsubsum.h 6
错误 32 error C2664: “maxSubSum”: 不能将参数 1 从“std::vector<_Ty>”转换为“const int” d:\datastructure\qhx521\qhx521\main.cpp 17
错误 27 error C2228: “.size”的左边必须有类/结构/联合 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 56
错误 2 error C2143: 语法错误 : 缺少“,”(在“<”的前面) d:\datastructure\qhx521\qhx521\maxsubsum.h 5
错误 4 error C2143: 语法错误 : 缺少“,”(在“<”的前面) d:\datastructure\qhx521\qhx521\maxsubsum.h 6
错误 6 error C2143: 语法错误 : 缺少“,”(在“<”的前面) d:\datastructure\qhx521\qhx521\maxsubsum.cpp 24
错误 24 error C2143: 语法错误 : 缺少“,”(在“<”的前面) d:\datastructure\qhx521\qhx521\maxsubsum.cpp 54
错误 29 error C2143: 语法错误 : 缺少“,”(在“<”的前面) d:\datastructure\qhx521\qhx521\maxsubsum.h 5
错误 31 error C2143: 语法错误 : 缺少“,”(在“<”的前面) d:\datastructure\qhx521\qhx521\maxsubsum.h 6
错误 8 error C2065: “right”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 26
错误 14 error C2065: “right”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 31
错误 18 error C2065: “right”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 33
错误 21 error C2065: “right”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 44
错误 7 error C2065: “left”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 26
错误 10 error C2065: “left”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 27
错误 12 error C2065: “left”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 28
错误 13 error C2065: “left”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 31
错误 16 error C2065: “left”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 32
错误 19 error C2065: “left”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 36
错误 9 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 27
错误 11 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 28
错误 15 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 32
错误 17 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 33
错误 20 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 38
错误 22 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 46
错误 25 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 56
错误 26 error C2065: “a”: 未声明的标识符 d:\datastructure\qhx521\qhx521\maxsubsum.cpp 56