读书人

求解!解决方案

发布时间: 2012-09-13 09:51:52 作者: rapoo

求解!
//在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。

读书人网 >C++

热点推荐