首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求解!解决方案

2012-09-13 
求解!//在devc++环境#include iostreamusing namespace stdint main(){int Lines, numcin Linesfor

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

热点排行