一道华为2016机试题总结:“最高分是多少”

关于题目的描述见最高分是多少

话不多说,直接上代码:

#include
#include

using namespace std;

int findmax(vector v,int st,int en)
{
	int max = 0,tmp;
	if(st>en)
	{
		tmp = st;
		st = en;
		en = tmp;
	}
	for(int i = st-1;imax)
			max = v[i];
	return max;
}

int main()
{
	int N,M,sco,st,en,t;
	char ch;
	vector score,start,end;
	vector vch;
	vector vr;//保存结果
	while(cin>>N>>M)
	{
		for(int i = 0;i>sco;
			score.push_back(sco);
		}
		for(int i = 0;i>ch>>st>>en;
			vch.push_back(ch);
			start.push_back(st);//每行初始编号
			end.push_back(en);  //每行末尾编号
		}
		for(int i = 0;i
上述代码在本机测试结果是正确的,但是结果提交代码之后却出现如下错误:

一道华为2016机试题总结:“最高分是多少”_第1张图片
解决办法1::要把vector变量clear一下,也就是每输完一组数,就把vector变量里保存的上一组数的结果清除掉。然后将代码修正之后就AC了。加上以下代码:

score.clear();
start.clear();
end.clear();
vch.clear();:
解决办法2:将score,start,end,vch等容器定义为局部容器即可。

你可能感兴趣的:(C++)