首页 > 解决方案 > 在 C# 中为长度未知的数组赋值

问题描述

我正在设计一个程序,要求用户输入 2 个数字。然后它找到每个数字的主要因素。质因数的数量取决于用户输入的数量。我需要一个事先不知道元素数量的数组,以便我可以将其中一个数字的素因子输入到可变长度数组中。

int a = -1, b = -1;
string sa, sb;
int GCF = 0;
int LCM = 0;
int temp = 1, tempb = 1; 
int[] primes = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 
                       47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};

while (aValid == true)
{
for (int i = 0; i < 25; i++)
{
if (a % primes[i] == 0)
{
Console.Write(" ");
Console.Write(primes[i]);
//my attempt below to input current prime factor into variable array
int[] arrb = primes[i];
a = a / primes[i];
}
}
if (a == 1)
{
break;
}
}

标签: c#

解决方案


您可以使用List<int>int 数组代替。声明新的时List,您不需要指定容量。while在您的代码中,在循环上方添加以下行:

List<int> arrb = new List<int>();

然后替换int[] arrb = primes[i];

arrb.Add(primes[i]);

推荐阅读