C#随机数组显示全零、求和结果为零问题求助
C#数组输出全零、求和为零的问题解决
你的代码核心问题出在CreateArray方法里:你只是循环打印了10个随机数,但完全没把这些随机值存入数组,最后直接返回了一个新的int[10]。C#中int类型数组的默认元素值都是0,所以后续DisplayArray和SumTheArray操作的都是全零数组,结果自然全是0。
修正后的关键代码
先修改CreateArray方法,把随机数存入数组后再返回:
static int[] CreateArray() { Random random = new Random(); // 先创建长度为10的数组 int[] resultArray = new int[10]; for (int i = 0; i < 10; i++) { // 将随机数赋值给数组对应位置的元素 resultArray[i] = random.Next(1, 100); // 保留打印逻辑(不需要可删除) Console.WriteLine(resultArray[i]); } // 返回填充好的数组 return resultArray; }
完整修正代码
namespace random_array_2._0 { class Program { static void Main(string[] args) { int[] array; int sum = 0; int arraySum; array = CreateArray(); DisplayArray(array); arraySum = SumTheArray(array, sum); } static int[] CreateArray() { Random random = new Random(); int[] resultArray = new int[10]; for (int i = 0; i < 10; i++) { resultArray[i] = random.Next(1, 100); Console.WriteLine(resultArray[i]); } return resultArray; } static void DisplayArray(int[] array) { Console.WriteLine(); Console.WriteLine("Sorted array in ASC order"); Array.Sort(array); foreach (int i in array) { Console.Write(i + " "); } } static int SumTheArray (int[] array, int sum) { for (int i = 0; i < array.Length; i++) { sum += array[i]; } Console.WriteLine($"all together equals to: {sum}"); Console.ReadKey(); return sum; } } }
额外小建议
- 变量名尽量见名知意,比如把
Random Array改成Random random,避免和系统类名Array混淆 SumTheArray方法里的sum参数其实没必要传入,直接在方法内初始化int sum = 0即可,不过这不是当前问题的诱因
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

