C# C语言中的乘法表#

C# C语言中的乘法表#,c#,C#,我对C#(以及一般的编程)还不熟悉,我被困在学校的实验室里。 我一直在试着做乘法表1-10,但是我犯了一个我不明白的错误 我用System.Array得到了这个;使用System.Linq;那么我做错了什么?我可能什么都没做对呵呵 static void Calculate(int[] numbers) { int[] CalculateMultTable = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

我对C#(以及一般的编程)还不熟悉,我被困在学校的实验室里。 我一直在试着做乘法表1-10,但是我犯了一个我不明白的错误

我用System.Array得到了这个;使用System.Linq;那么我做错了什么?我可能什么都没做对呵呵

 static void Calculate(int[] numbers)
    {
        int[] CalculateMultTable = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        Calculate(CalculateMultTable);
        {
            for (int i = 0; i < numbers.Length; i++)
            {
                numbers[i] = numbers[i] * numbers[i];
            }
        }
    }
静态无效计算(int[]个数字)
{
int[]CalculateMultTable=新的int[10]{1,2,3,4,5,6,7,8,9,10};
计算(CalculateMiltTable);
{
for(int i=0;i
您的代码永远不会工作,这是一个递归循环,没有任何条件可以逃避它。
按如下所示更改cose并将其工作:

static void Calculate(int[] numbers)
{
    var CalculateMultTable = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        for (var i = 0; i < numbers.Length; i++)
            numbers[i] = numbers[i]*numbers[i];
        //Do what you want
}
静态无效计算(int[]个数字)
{
var CalculateMultTable=新整数[10]{1,2,3,4,5,6,7,8,9,10};
对于(变量i=0;i
您的代码永远不会工作,这是一个递归循环,没有任何条件可以逃避它。
按如下所示更改cose并将其工作:

static void Calculate(int[] numbers)
{
    var CalculateMultTable = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        for (var i = 0; i < numbers.Length; i++)
            numbers[i] = numbers[i]*numbers[i];
        //Do what you want
}
静态无效计算(int[]个数字)
{
var CalculateMultTable=新整数[10]{1,2,3,4,5,6,7,8,9,10};
对于(变量i=0;i
您正在通过调用Calculate(CalculateMultTable)创建一个无限循环,可能会创建StackOverflow异常。函数将自动调用,直到内存耗尽

如果删除该行,它将起作用,但它只会创建乘法两边相同的条目。例如,1*1、2*2、*3*3等等。我希望这是你的意图

static void Calculate(int[] numbers)
{
    int[] CalculateMultTable = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    {
        for (int i = 0; i < numbers.Length; i++)
        {
            numbers[i] = numbers[i] * numbers[i];
        }
    }
}
静态无效计算(int[]个数字)
{
int[]CalculateMultTable=新的int[10]{1,2,3,4,5,6,7,8,9,10};
{
for(int i=0;i
您正在通过调用Calculate(CalculateMultTable)创建一个无限循环,可能会创建StackOverflow异常。函数将自动调用,直到内存耗尽

如果删除该行,它将起作用,但它只会创建乘法两边相同的条目。例如,1*1、2*2、*3*3等等。我希望这是你的意图

static void Calculate(int[] numbers)
{
    int[] CalculateMultTable = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    {
        for (int i = 0; i < numbers.Length; i++)
        {
            numbers[i] = numbers[i] * numbers[i];
        }
    }
}
静态无效计算(int[]个数字)
{
int[]CalculateMultTable=新的int[10]{1,2,3,4,5,6,7,8,9,10};
{
for(int i=0;i
正如其他答案所指出的,您正在进行一个无限递归调用,并且可能会得到一个
StackOverflowException
。另外,我也不知道你在用你的数组做什么。你应该被分配到它里面吗?它只是为了帮助循环打印正确的数字吗?您可以这样做:

for(int i = 1; i <= 10; i++)
{
   for(int j = 1; j <= 10; j++)
   {
      Console.Write((i * j).ToString() + "\t");
   }
   Console.WriteLine();
}
如果要将其保存到2D数组中,可以去掉我的
Console.WriteLine
并用如下代码替换
Console.Write

int[,] multTable = new int[10,10];
for(int i = 1; i <= 10; i++)
{
   for(int j = 1; j <= 10; j++)
   {
      multTable[i - 1, j - 1] = i * j;
   }
}

正如其他答案所指出的,您正在进行一个无限递归调用,并且可能会得到一个
StackOverflowException
。另外,我也不知道你在用你的数组做什么。你应该被分配到它里面吗?它只是为了帮助循环打印正确的数字吗?您可以这样做:

for(int i = 1; i <= 10; i++)
{
   for(int j = 1; j <= 10; j++)
   {
      Console.Write((i * j).ToString() + "\t");
   }
   Console.WriteLine();
}
如果要将其保存到2D数组中,可以去掉我的
Console.WriteLine
并用如下代码替换
Console.Write

int[,] multTable = new int[10,10];
for(int i = 1; i <= 10; i++)
{
   for(int j = 1; j <= 10; j++)
   {
      multTable[i - 1, j - 1] = i * j;
   }
}
int[]CalculateMultTable=newint[10]{1,2,3,4,5,6,7,8,9,10};
int[][]表=新int[10][];
对于(int i=0;i<10;i++)
{
表[i]=新整数[10];
对于(int j=0;j<10;j++)
{
表[i][j]=CalculateMultTable[j]*(i+1);
}
}
只需使用1,2,3…初始化1D数组。。。。 在两个for循环中,只需将
CalculateMultTable
索引处的值与行号简单相乘即可

int[]CalculateMultTable=newint[10]{1,2,3,4,5,6,7,8,9,10};
int[][]表=新int[10][];
对于(int i=0;i<10;i++)
{
表[i]=新整数[10];
对于(int j=0;j<10;j++)
{
表[i][j]=CalculateMultTable[j]*(i+1);
}
}
只需使用1,2,3…初始化1D数组。。。。
在两个for循环中,只需将
CalculateMultTable
索引处的值与行号简单相乘即可

没有人提到基于LINQ的解决方案:)

显然,我在谷歌上找不到任何搜索结果,所以我找到了以下代码,希望对其他人也有用:

var n = Enumerable.Range(0, 10);
var m = n.Select( n1 => n.Select(n2 => n1 * n2 ).ToArray() ).ToArray();

var result_will_be_10 = m[2][5];
var result_will_be_56 = m[8][7];
var result_will_be_81 = m[9][9];

没有人提到基于LINQ的解决方案:)

显然,我在谷歌上找不到任何搜索结果,所以我找到了以下代码,希望对其他人也有用:

var n = Enumerable.Range(0, 10);
var m = n.Select( n1 => n.Select(n2 => n1 * n2 ).ToArray() ).ToArray();

var result_will_be_10 = m[2][5];
var result_will_be_56 = m[8][7];
var result_will_be_81 = m[9][9];

错误是什么?另外,如果你包含了整个函数也会有帮助-你肯定缺少了一些右括号,这让我想知道是否还有更多的错误。我一下子就发现了3个错误(包括拼写错误
长度
),但是你应该在你的问题上投入更多的精力。告诉我们您希望输出是什么(例如,您希望如何存储和显示它)、您收到了什么错误消息以及您尝试了什么来克服它。你知道,让我们觉得我们是在帮你,而不是帮你做家庭作业。没必要压垮这个家伙。他是新来的,是个新的程序员。这是一个很大的认知负荷。行号左边是一个灰色区域。找到声明CalculateMultTable的行。点击灰色a