请求完善C#代码:计算1-100奇数和与2-100偶数和
修正后的C#代码:计算指定范围的奇数和与偶数和
原代码存在的问题
- 奇偶判断逻辑写在
for循环外部,仅会在循环结束后执行一次,无法遍历每个数字进行判断 - 错误使用了未初始化的数组
array,数组长度仅为10且未赋值,直接访问array[i]会导致索引越界 - 注释掉了关键的奇偶判断条件,无法区分奇偶数字
版本1:固定计算1到100的奇数和、2到100的偶数和
直接实现你需求的固定范围计算,代码更简洁高效:
// 计算1到100的奇数和,以及2到100的偶数和 int oddSum = 0; int evenSum = 0; // 遍历1到100的所有奇数(步长设为2,跳过偶数) for (int i = 1; i <= 100; i += 2) { oddSum += i; } // 遍历2到100的所有偶数(步长设为2,跳过奇数) for (int i = 2; i <= 100; i += 2) { evenSum += i; } Console.WriteLine($"1到100的奇数和:{oddSum}"); Console.WriteLine($"2到100的偶数和:{evenSum}"); Console.ReadLine();
版本2:保留用户输入范围的交互版
保留你原代码的交互功能,同时修正逻辑错误:
Console.WriteLine("计算指定范围的奇数和与偶数和"); Console.WriteLine(); // 声明所需变量 string strFromNumber, strToNumber; int fromNumber, toNumber; int evenSum = 0, oddSum = 0; // 获取用户输入的起始数字 Console.Write("请输入起始数字:"); strFromNumber = Console.ReadLine(); fromNumber = Convert.ToInt32(strFromNumber); // 获取用户输入的结束数字 Console.Write("请输入结束数字:"); strToNumber = Console.ReadLine(); toNumber = Convert.ToInt32(strToNumber); // 遍历范围,逐个判断奇偶并累加 for (int i = fromNumber; i <= toNumber; i++) { if (i % 2 == 0) { evenSum += i; } else { oddSum += i; } } Console.WriteLine($"从{fromNumber}到{toNumber}的奇数和:{oddSum}"); Console.WriteLine($"从{fromNumber}到{toNumber}的偶数和:{evenSum}"); Console.ReadLine();
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

