You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#数组求和代码输出随机数而非正确结果的问题求助

C#数组求和代码输出随机数而非正确结果的问题求助

我是C#新手,最近在做一道数组求和的练习题,题目要求编写程序计算数组所有元素的和,测试数据如下:

输入数组元素个数:3

输入3个元素:
element - 0: 2
element - 1: 5
element - 2: 8

预期输出:Sum of all elements stored in the array is: 15

我写的代码如下:

Console.Write("Enter the length of the array : ");
int len = Convert.ToInt32 (Console.ReadLine());
int[] arr = new int[len];

for (int i = 0; i < len; i++) {
    arr[i] = Convert.ToInt32(Console.Read());
}

Console.WriteLine(arr.Sum());

但运行后输出的不是正确结果,而是一些看起来像随机的数字,有没有大佬能帮我看看哪里错了呀?


嗨,兄弟,问题出在你用的Console.Read()上!

Console.Read()方法读取的是单个字符的ASCII码值,而不是你输入的整数。比如你输入2然后按回车,它会先读取字符'2'的ASCII码(也就是50),下一次循环会读取换行符的ASCII码(10),再下一次读取'5'的ASCII码(53)——这样数组里存的根本不是你输入的2、5、8,求和自然就不对了。

你应该把Console.Read()换成Console.ReadLine(),就像你读取数组长度时那样修改循环部分,还可以加上输入提示贴合题目要求的格式:

for (int i = 0; i < len; i++) {
    Console.Write($"element - {i}: ");
    arr[i] = Convert.ToInt32(Console.ReadLine());
}

另外,为了完全匹配题目预期的输出样式,最后可以把输出语句改成:

Console.WriteLine($"Sum of all elements stored in the array is: {arr.Sum()}");

这样修改后,运行程序输入对应的测试数据,就能得到正确的15啦!

备注:内容来源于stack exchange,提问作者Sagnik Majumder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:24:49