重要问题--望大家指点
此程序就是要判断一组数里面有没有连号,有多少连号,并输出。程序如下:
#include <iostream>
#include<vector>
#include<fstream>
using namespace std;
int main()
{
int a[][5]={{1,3,5,6,10},{2,4,6,7,12},{3,5,6,8,9},{4,5,6,7,13},{1,3,5,7,9}};
vector<int>temp;
vector<vector<int> > connect;
int connectnum=0,count=0;
cout<<"please enter the number you wish:";
cin>>connectnum;
cout<<endl;
for(int i=0;i<4;i++)
{
for(int j=0;j<5;j++)
{
if(a[i][j+1]-a[i][j]==1) //这里的问题
count+=1;
temp.push_back(a[i][j]);
}
if(count==connectnum)
connect.push_back(temp);
temp.clear();
count=0;
}
ofstream output("result.txt");
output<<"the numbers you wanna find is:";
for(int i=0;i<connect.size();i++)
{
for(int j=0;j<connect[i].size();j++)
output<<connect[i][j]<<" ";
output<<endl;
}
output.close();
return 0;
}
这个程序能正确运行,但我总感觉有问题,问题就是我注释的地方。
当j为最大的时候,a[i][j+1]就不存在,程序应该出错,但却正常运行。
希望大家帮忙解释下。
另外,如果有其他更好的办法,帮忙给我附上,哈哈哈。谢谢。