C++ 运行代码时出错
我尝试了以下代码,但运行时出错。我使用了调试器,但我无法理解调用堆栈中的错误C++ 运行代码时出错,c++,text-files,C++,Text Files,我尝试了以下代码,但运行时出错。我使用了调试器,但我无法理解调用堆栈中的错误 #include <iostream> #include <fstream> using namespace std; int main() { int a[10][2],i,j, b[10],max, min; ifstream f("numere.txt"); for(i=1;i<=10;i++) { for(j=1;j<=2
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int a[10][2],i,j, b[10],max, min;
ifstream f("numere.txt");
for(i=1;i<=10;i++)
{
for(j=1;j<=2;j++)
{
f>>a[i][j];
b[i]=0;
}
}
for(i=1;i<=10;i++)
{
for(j=1;j<=2;j++)
{
b[i]=b[i]+a[i][j];
}
}
max=b[1];
min=b[1];
for(i=1;i<=5;i++)
{
if(max<=b[i]) max=b[i];
if(min>=b[i]) min=b[i];
}
cout<<"Cea mai mare suma este:"<< max<<endl;
cout<<"Cea mai mica suma este:"<< min<<endl;
f.close();
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int a[10][2],i,j,b[10],max,min;
IFF流(“numere.txt”);
对于(i=1;ia[i][j];
b[i]=0;
}
}
对于(i=1;i您至少有一个错误:数组索引超出范围:
for(i= 0;i<10;i++)
{ //^^^
for(j=0;j< 2;j++)
{ //^^^
f>>a[i][j];
b[i]=0; //Why you put b[i] here??
}
}
(i=0;i>a[i][j];
b[i]=0;//为什么把b[i]放在这里??
}
}
自从您声明代码> [10 ] [2 ] < /> >数组索引从C++开始> < 0 >代码>,C++中没有<代码> 1 > /代码>。您将访问不属于<代码> > < <代码> >(<代码> b>代码>)的内存。 < p>数组中的第一个索引是<强> 0 < /强>,而不是<强> 1 > 在循环中尝试从0到9,而不是从1到10
<>你可以得到更多关于C++数组的信息。 这里最突出的错误是你在C++中开始了代码访问> 1代码>代码>在C++代码数组索引开始于<代码> 0 /代码>,这也意味着你在你的for循环中也在访问界限之外,例如:
for(i=1;i<=10;i++)
^^^ ^^
for(i=1;我能发布一个示例输入文件吗?你的for
循环有一个越界,i感谢你,程序的另一个错误是,我最多比较了5个数字,而不是10个。
for(i=0;i<10;i++)