Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用多维数组时不编译_C++_Arrays - Fatal编程技术网

C++ 使用多维数组时不编译

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

这个程序的功能是查看数组元素的总和是否为零

有些元素可以是负数,用户输入将包含此多维数组中每行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 != 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]