嗨我有一个循环,正在逐步通过一个数组,每个索引乘以2。但是我改变了它,使得索引乘以0,然后是1,然后是2等,直到它达到10.(在下面的代码中这是j)j没有按预期递增,只是乘以9。有人可以帮忙吗? TKS
using System;
namespace ArrayandStringPractice
{
class MainClass
{
public static void Main(string[] args)
{
int[] a = new int[10];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
{
{
a[i] = i * j;
//Console.WriteLine(a[i]);
}
}
foreach (int i in a)
{
Console.WriteLine(i);
}
}
}
}
答案 0 :(得分:1)
使用
行a[i] = i * j;
使用i
, j
与循环的整个循环保持相同的值,这意味着您将不断覆盖a[i]
中的值。
使用你正在使用的新算法,你有效地将i
的平方存储在数组的每个索引处,所以这就足够了:
for (int i = 0; i < 10; i++)
a[i] = i * i;
答案 1 :(得分:0)
在你的for循环中用于j
a [i] = i * j;
以上代码行将始终用j的最后一个值9覆盖 所以,你会得到的 i = 1..9,多个固定j = 9。
using System;
namespace ArrayandStringPractice
{
class MainClass
{
public static void Main(string[] args)
{
int[] a = new int[10];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
{
{
a[i] = i * j;
//Console.WriteLine(a[i]);
}
}
foreach (int i in a)
{
Console.WriteLine(i);
}
}
}
}
答案 2 :(得分:0)
使用二维数组存储所有值:
int[,] a = new int[10,10];
然后替换
a[i] = i * j;
与
a[i,j] = i * j;
并使用它来读取值:
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
Console.WriteLine(a[i,j]);