如何让我的代码工作?

时间:2012-01-08 18:50:03

标签: c#

我有一个作业

我必须制作一个包含20个数字的一​​维数组 - 前10个数字来自1个10个。其他10个数字我必须得到称为Dopolni的方法 - 我必须将数组彼此相加如下 - p11 = p0 + p1,p12 = p1 + p2,p14 = p2 + p3等等 - 我不知道如何安排它来获取其他10个数字 - 请帮助

我的代码到现在为止

static void Dopolni(int[] p)
{
    for (int i = 11; i < 20; i++)
    {
        p[i] = p[i] + 1;
    }
}
static void Main(string[] args)
{
    int[] p = new int[20];

    for (int i = 1; i < 20; i++)
    {
        if (i <= 10)
        {
            p[i] += i;
        }

        Console.WriteLine("{0}", p[i]);
    }
    Dopolni(p);
    Console.WriteLine(p);
    Console.ReadKey(true);
}

我必须在主窗口中写出所有数字。希望有人可以提供帮助

4 个答案:

答案 0 :(得分:0)

你需要在功能中使用它吗?它非常简单......

注意我使用'out int []',这就是你在代码中遗漏的内容。 Out指定您想要输入/输出参数,而不仅仅是;)

static void Main()
{
    int[] p = new int[20];

    // First 10 numbers
    for (int i = 0; i < 10; i++)
        p[i] = i + 1;

    Dolpini(out p);

    foreach (int m in p)
        Console.WriteLine(m);
}

static void Dolpini(out int[] numbers)
{
    // Next 10 numbers
    for (int k = 10; k < 20; k++)
        p[k] = p[k-10] + p[k-9];
}

答案 1 :(得分:0)

public static void Main()
{
  int[] p = new int[20];
  for (int i = 0; i < 10; i++)
  {
    p[i] = i + 1;
    ¨
    Console.WriteLine(p[i]);

  }

  Dopolni(p);

}

static void Dopolni(int[] p)
{
  for (int i = 10; i < 20; i++)
  {
    p[i] = p[i - 10] + p[i - 9];
    Console.WriteLine(p[i]);
  }
}

答案 2 :(得分:0)

这看起来很麻烦:

int[] p = new int[20];
Console.WriteLine(p);

你想要的是循环遍历p并打印每个元素,而不是依赖ToString()的数组实现。

尝试:

foreach (var n in p)
    Console.WriteLine(n);

答案 3 :(得分:0)

前10个数字的索引范围从0到9,其他数字从10到19。但由于你总是将两个连续数字相加,你只能获得9个数字!为了得到10个总和,你可以从p [0]求和0开始:

int previous = 0;
for (int i = 0; i < 10; i++) {
    p[i + 10] = previous + p[i];
    previous = p[i];
}