Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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# System.IndexOutOfRangeException总和0_C# - Fatal编程技术网

C# System.IndexOutOfRangeException总和0

C# System.IndexOutOfRangeException总和0,c#,C#,很抱歉问这个简单的问题,但我是初学者。 我试图找到那些和为0的子集,这些数字在一个数组中 我的subset.Length有什么问题。我已经对它进行了调试,我认为逻辑是好的。但是每次都有一个takeSystem.IndexOutOfRangeException。我尝试了subset.Length-1。结果没有改变 异常在if(子集[m]==0)语句的行中给出 谢谢 int[] subset={-3,-2,1,1,8} // the sum of -2, 1 and 1 is 0 for (in

很抱歉问这个简单的问题,但我是初学者。 我试图找到那些和为0的子集,这些数字在一个数组中

我的subset.Length有什么问题。我已经对它进行了调试,我认为逻辑是好的。但是每次都有一个take
System.IndexOutOfRangeException
。我尝试了
subset.Length-1
。结果没有改变

异常在
if(子集[m]==0)
语句的行中给出

谢谢

 int[] subset={-3,-2,1,1,8} // the sum of -2, 1 and 1 is 0

for (int i = 0; i < subset.Length; i++)
            {
                for (int j = 0; i < subset.Length; j++)
                {
                    for (int k = 0; i < subset.Length; k++)
                    {
                        for (int l = 0; i < subset.Length; l++)
                        {
                            for (int m = 0; i < subset.Length; m++)
                            {

                                if (subset[m] == 0)
                                {
                                    Console.WriteLine("The subset of sum of zero:{0}", subset[m]);
                                }
                                if (subset[l] + subset[m] == 0)
                                {
                                    Console.WriteLine("The subset of sum of zero:{0},{1}", subset[m], subset[l]);
                                }
                                if (subset[l] + subset[m] + subset[k] == 0)
                                {
                                    Console.WriteLine("The subset of sum of zero:{0},{1},{2}", subset[m], subset[l], subset[k]);
                                }
                                if (subset[l] + subset[m] + subset[k] + subset[j] == 0)
                                {
                                    Console.WriteLine("The subset of sum of zero:{0},{1},{2}", subset[m], subset[l], subset[k], subset[j]);
                                }

                                if (subset[l] + subset[m] + subset[k] + subset[j] + subset[i] == 0)
                                {
                                    Console.WriteLine("The subset of sum of zero:{0},{1},{2},{3}", subset[m], subset[l], subset[k], subset[j], subset[i]);
                                }
int[]subset={-3,-2,1,1,8}//2,1和1的和是0
for(int i=0;i
注意循环的条件:它始终是
i
。但您应该与相应的循环变量进行比较:jklm(复制粘贴错误?)


在您的代码中,j/k/l/m的for循环是无限的,因为当这些循环迭代时,i将永远不会增加…

您的for循环终止条件始终是
i
,将其更改为相关的迭代变量,即
for(int m=0;m

for(int j=0;j
以下是逻辑错误:

for (int i = 0; i < subset.Length; i++)
            {
                for (int j = 0; i < subset.Length; j++)
                {
                    for (int k = 0; i < subset.Length; k++)
                    {
                        for (int l = 0; i < subset.Length; l++)
                        {
                            for (int m = 0; i < subset.Length; m++)
for(int i=0;i
应该是:

for (int i = 0; i < subset.Length; i++)
            {
                for (int j = 0; j < subset.Length; j++)
                {
                    for (int k = 0; k < subset.Length; k++)
                    {
                        for (int l = 0; l < subset.Length; l++)
                        {
                            for (int m = 0; m < subset.Length; m++)
for(int i=0;i
oops,菜鸟错误:)我错过了那个简单的规则。对不起,那是我的错。谢谢你的关注。
for (int i = 0; i < subset.Length; i++)
            {
                for (int j = 0; j < subset.Length; j++)
                {
                    for (int k = 0; k < subset.Length; k++)
                    {
                        for (int l = 0; l < subset.Length; l++)
                        {
                            for (int m = 0; m < subset.Length; m++)