C#课程作业:Pro(k)方法实现疑问及代码修正求助
修正后的实现方案
完整代码
using System; class Program { static void Main() { Console.WriteLine("Enter a = "); int a = int.Parse(Console.ReadLine()); Console.WriteLine("Enter b = "); int b = int.Parse(Console.ReadLine()); Console.WriteLine("Enter c = "); int c = int.Parse(Console.ReadLine()); // 对c-b取绝对值后传入Pro方法 int finalResult = Pro(Math.Abs(c - b)) * Pro(a); Console.WriteLine($"最终计算结果:{finalResult}"); } public static int Pro(int k) { int sum = 0; Random randomGenerator = new Random(); for (int i = 0; i < k; i++) { // 生成int范围内的随机整数 int randomNum = randomGenerator.Next(int.MinValue, int.MaxValue); // 判断是否在[-10,10]区间内,符合则累加 if (randomNum >= -10 && randomNum <= 10) { sum += randomNum; } } Console.WriteLine($"生成{k}个随机数,[-10,10]区间内的数的和为:{sum}"); return sum; } }
关键修改说明
替换手动输入为随机数生成:
移除原代码中手动输入数字的逻辑,改用Random类生成随机整数。randomGenerator.Next(int.MinValue, int.MaxValue)会生成覆盖整个int范围的随机数,完全符合题目“生成k个随机整数”的要求。添加绝对值处理:
调用Pro方法时,使用Math.Abs(c - b)确保传入的参数是正整数——题目要求输入的a、b、c是正整数,但c - b可能为负数,取绝对值后才能满足Pro方法对k为正整数的需求。清理冗余测试代码:
删除原Main方法中单独测试Pro(k)的代码,聚焦作业要求的核心逻辑:输入a、b、c后计算Pro(|c-b|)*Pro(a)。优化输出可读性:
使用字符串插值$""让输出内容更直观,明确每个步骤的结果含义。
内容的提问来源于stack exchange,提问作者Fatma Sahatchieva
相关产品推荐
相关产品推荐

