求解!
//在devc++环境
#include <iostream>
using namespace std;
int main()
{
int Lines, num;
cin >>Lines;
for(int j = 1;j<=Lines;j++)
{
int Max = 0,sum = 0,first = 0,end = 0;
cin>> num;
int *iNum = new int(num );
int i = 0;
for(i = 0; i < num; i++)
{
cin >> iNum[i];
sum += iNum[i];
if(sum > Max)
{
Max = sum;
first = 1;
end = i+1;
}
if(sum < 0)
{
first = i+2;
}
}
if(j!=Lines)
cout <<Max <<" "<<first <<" "<<end <<endl;
else
cout <<Max <<" "<<first <<" "<<end;
}
system("pause");
return 0;
}
为什么输入:
2
5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
在最后出问题?而输入5 6 -1 5 4 -7就没问题
[解决办法]
看不懂 不过你NEW用法错了
[解决办法]
出什么问题?
- C/C++ code
#include <iostream>using namespace std;int main(){ int Lines, num; cin >>Lines; for(int j = 1;j<=Lines;j++) { int Max = 0,sum = 0,first = 0,end = 0; cin>> num; int *iNum = new int(num ); int i = 0; for(i = 0; i < num; i++) { cin >> iNum[i]; sum += iNum[i]; if(sum > Max) { Max = sum; first = 1; end = i+1; } if(sum < 0) { first = i+2; } } if(j!=Lines) cout <<Max <<" "<<first <<" "<<end <<endl; else cout <<Max <<" "<<first <<" "<<end; } system("pause"); return 0;}
[解决办法]
是的,new用法错了
- C/C++ code
#include <iostream>#include <string>using namespace std;int main(){ int Lines, num; cin >>Lines; for(int j = 1;j<=Lines;j++) { int Max = 0,sum = 0,first = 0,end = 0; cin>> num; int *iNum = new int[num]; int i = 0; for(i = 0; i < num; i++) { cin >> iNum[i]; sum += iNum[i]; if(sum > Max) { Max = sum; first = 1; end = i+1; } if(sum < 0) { first = i+2; } } if(j!=Lines) cout <<Max <<" "<<first <<" "<<end <<endl; else cout <<Max <<" "<<first <<" "<<end; delete []iNum; } system("pause"); return 0;}
[解决办法]
注意缺少delete会内存泄漏
------解决方案--------------------
说说这个程序是干嘛的。
自己用debugger。