用 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]);
}
这是获取结果的另一种方法:
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 个值。