我有一个作业
我必须制作一个包含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);
}
我必须在主窗口中写出所有数字。希望有人可以提供帮助
答案 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];
}