C++ 使用多维数组时不编译
这个程序的功能是查看数组元素的总和是否为零 有些元素可以是负数,用户输入将包含此多维数组中每行3个整数 仅当满足整数n的条件时,程序才应启动C++ 使用多维数组时不编译,c++,arrays,C++,Arrays,这个程序的功能是查看数组元素的总和是否为零 有些元素可以是负数,用户输入将包含此多维数组中每行3个整数 仅当满足整数n的条件时,程序才应启动 #import <iostream> using namespace std; int main (){ int n; int myArray[2][2]; cin >> n; int i; int j; if (1<n<100) { for (i=0; i!=3; i++) { for (j=0; j
#import <iostream>
using namespace std;
int main (){
int n;
int myArray[2][2];
cin >> n;
int i;
int j;
if (1<n<100)
{
for (i=0; i!=3; i++)
{
for (j=0; j != 3; j++)
cin >> myArray[i][j];
}
{
int l = myArray[i][j] + myArray[i][j];
if (l==0)
{
cout << "Yes";
}
else
cout << "No";
}
}
else
cout << "foo";
return 0;
}
#导入
使用名称空间std;
int main(){
int n;
int myArray[2][2];
cin>>n;
int i;
int j;
if(1 myArray[i][j];
}
{
int l=myArray[i][j]+myArray[i][j];
如果(l==0)
{
库特
定义具有两行两列(0和1)的二维数组。但是:
for (i = 0; i != 3; i++)
{
for (j = 0; j != 3; j++)
{
cin >> myArray[i][j];
}
}
将尝试访问3行3列(0、1和2)。这将编译并表现出不良行为,如果幸运的话,它将使程序崩溃。如果幸运的话,它看起来会正常工作,但会悄悄地破坏程序中的其他内容。您的程序中有许多错误
有些是逻辑错误
您的第一个错误是当您检查输入n
条件不正确时,它将始终返回true
(1当您尝试编译时,它会给您带来什么错误?为什么您需要使用2D数组来解决此问题?据我所知,您需要从[2,99]中的用户处读取3个值)然后将它们全部添加到一起,以检查它们的总和是否为0。您可以使用1D数组执行此操作。当您编译代码时,您遇到了比这更严重的问题。您将数组索引为超出范围。至于您的问题,在发布有关错误的问题时,请始终在问题中包含完整且未编辑的错误输出。(我知道问题是什么,但是你仍然应该编辑你的问题的完整性。提示:你使用一个条件,在C++中是不合法的)循环的“修复”(代码在外环内部移动部分)不会有帮助,因为j
在内环之后仍然会超出范围。对于错误,我很抱歉,但我一周前刚刚开始,发现了这个很棒的论坛。为了回答你的问题,我试图找出数组的元素加起来是否为0,这将被输入到myArray中。因为,没有元素是3x3,所以我使用了for循环。
#include<iostream>
if (1 < n < 100)
if (1 < n && n < 100)
for (i=0; i!=3; i++)
{
for (j=0; j != 3; j++)
cin >> myArray[i][j];
}// looks OK, but made suspicious by the next line
{ //open brace with no conditional attached. Valid, but unusual enough to draw
// a second glance
int l = myArray[i][j] + myArray[i][j];
if (l==0)
{
cout << "Yes";
}
else
cout << "No";
}
for (i = 0; i != 3; i++)
{
for (j = 0; j != 3; j++)
cin >> myArray[i][j];
}
{
int l = myArray[i][j] + myArray[i][j];
if (l == 0)
{
cout << "Yes";
}
else
cout << "No";
}
int myArray[2][2];
for (i = 0; i != 3; i++)
{
for (j = 0; j != 3; j++)
{
cin >> myArray[i][j];
}
}
myArray[2][2];
for (i=0; i!=3; i++)
{
for (j=0; j != 3; j++)
cin >> myArray[i][j];
}
for (i=0; i!=2; i++)
{
for (j=0; j !=2; j++)
cin >> myArray[i][j];
}
int l = myArray[i][j] + myArray[i][j];
myArray[3][3]+myArray[3][3]