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

新手程序员求助:C#代码实参不匹配问题修复

解决“没有与所需的形参'l'对应的实参”编译错误

嘿,我一眼就看到你遇到的问题了——这是个典型的参数不匹配编译错误,咱们一步步来解决:

直接的编译错误原因

你定义的How_many_can方法需要6个参数:

static int How_many_can(int n, int sum, int how_many_can, int m, int k,string l)

但在Main方法里调用时只传了5个:

Console.WriteLine(How_many_can(n, sum, how_many_can, m,l));

漏掉了k这个必填参数,这就是编译器报错的核心原因。

修复步骤

1. 修正方法调用参数

你在Main里已经计算了k = l.Count();,只需要把它加到调用参数里就行:

Console.WriteLine(How_many_can(n, sum, how_many_can, m, k, l));

2. 修复递归逻辑的隐藏Bug

除了编译错误,你的代码还有几个逻辑问题会导致运行结果不符合预期,我一起帮你修正:

  • sum未重置:每次递归累加sum后,下次递归时sum会保留之前的数值,需要在每次进入方法时重置为0;
  • m的初始值错误:递归时传入的m是上一次循环后被除到0的值,应该用当前n的数值重新初始化;
  • 终止条件不合理:当前的if (sum > n)判断不准确,改成当n≤0时停止递归更合理。

修正后的完整代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace How_many_can {
    class Program {
        static void Main(string[] args) {
            var n = Int32.Parse(Console.ReadLine());
            int sum = 0;
            int how_many_can = 0;
            var l = n.ToString();
            var k = l.Count();
            Console.WriteLine(How_many_can(n, sum, how_many_can, k));
        }
        // 简化参数列表,将m、l移到方法内部计算,避免冗余参数
        static int How_many_can(int n, int sum, int how_many_can, int k) {
            // 终止条件:当n已经不足以再减去数位和时停止
            if (n <= 0) {
                return how_many_can;
            }
            
            sum = 0;
            int m = n; // 每次用当前n初始化m,保证数位计算正确
            for (int i = 0; i < k; i++) {
                sum += m % 10;
                m /= 10;
            }
            
            how_many_can += 1;
            n -= sum;
            var l = n.ToString();
            k = l.Count();
            
            return How_many_can(n, sum, how_many_can, k);
        }
    }
}

额外说明

我还简化了方法的参数列表,把不需要传递的m和l移到方法内部计算,这样代码更简洁,也能减少参数传递出错的概率。你可以运行修正后的代码,看看是否符合你的预期~

内容的提问来源于stack exchange,提问作者Kachunskyy Igor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:46:49