用 5 位数字的数字填充长度为 5 的数组

本文关键字:数字 数组 填充 | 更新日期: 2023-09-27 18:35:02

我想要一个算法,用 5 位数字的数字填充长度为 5 的数组。 例如,如果给定的数字是 45678,则数组将具有 |4|5|6|7|8|的内容。

我使用的语言是 C#。

我的代码:

int[] matrix = new int[5]; 
for (int i = 0; i < matrix.Length; i++) { 
    Console.WriteLine("Enter a 5 digit number: ", i); 
    matrix[i] = Convert.ToInt32(Console.ReadLine()); 
} 
for (int i = 0; i < matrix.Length; i++) { 
    Console.WriteLine(matrix[i]); 
} 

用 5 位数字的数字填充长度为 5 的数组

这是获取结果的另一种方法:

    String sInput = "45678";
    int[] ResArr = new int[sInput.Length];
    for (int iPos = 0; iPos < sInput.Length; iPos++)
    {
        ResArr[iPos] = Convert.ToInt32 (sInput.Substring (iPos, 1));
    }

=这是你所期望的吗?您可以通过反转最后一个 for 循环来反转顺序

        int[] matrix = new int[5];
        Console.WriteLine("Enter a 5 digit number: ");
        int number = Convert.ToInt32(Console.ReadLine());
        //for (int i = 0; i < matrix.Length; i++)
        for (int i = matrix.Length-1 ; i >= 0 ; i--)
        {
            matrix[i] = number % 10;
            number = number / 10;
        }
        for (int i = 0; i < matrix.Length; i++)
        //for (int i = matrix.Length-1 ; i >= 0 ; i--)
        {
            Console.WriteLine(matrix[i]);
        }
        Console.ReadLine();

复制这个,看看这是否是你想要的..然后试着把你的头缠绕在上面,否则你永远不会学会它!

我不会为你做功课,但我会给你一些提示......

String 类有一个名为 Format 的方法,可用于获取五位数字的字符串代表,甚至考虑前导零。

它还有一个ToCharArray方法 - Chars和.Net中的其他所有内容一样,有一个ToString方法。

你可以

试试

        Console.WriteLine("Enter a 5 digit number: ");
        var sInput = Console.ReadLine(); // Reads all digits at once
        // Check whether the input is a valid number
        int nTest;
        if (!int.TryParse(sInput, out nTest))
        {
             // invalid input: do something specific here (return, alert user, ...)
        }
        //-- Digits extraction starts here
        var acDigits = sInput.ToCharArray(); // Stores all the digits separately
        var anDigits = new int[acDigits.Length]; // Allocates the target array (matrix of int)
        // for each digit within the source text
        for (var ixDigit = 0; ixDigit < acDigits.Length; ixDigit++)
        {
            // Take the digit char, subtracts '0', stores the value
            anDigits[ixDigit] = acDigits[ixDigit] - '0';
        }
        //-- Digits extraction ends here
        // output
        Console.WriteLine(string.Format("The number is {0} digits long", anDigits.Length));
        // for each stored digit
        for (int ixDigit = 0; ixDigit < anDigits.Length; ixDigit++)
        {
            Console.Write("|" + anDigits[ixDigit].ToString());
        }
        Console.WriteLine("|");

此代码将数字保存到数字中。然后,它会根据您的结果示例输出它们。

问候丹尼尔。

好的,让我们拆分任务。您已经知道如何读/写数字。您的问题是将此数字读取到 int 数组中。所以这里有一种方法可以做到这一点:

string number = "45678";
int[] result = number.ToCharArray().Select(
    c => (int)char.GetNumericValue(c)).ToArray();

如果无法解析第 n 个字符,则GetNumericValue返回一个-1作为数组的第 n 个值。