R语言编写求三个数最大两值平方和函数运行报错如何解决?
R代码错误排查与修正
核心错误点
- 语法错误:R语言规定
if后的判断条件必须用**圆括号()**包裹,你代码中if后面用了大括号{},这是代码无法运行的直接原因。 - 逻辑缺陷:当前仅校验了三个数完全相等的场景,若输入存在两个相等的数值(比如
largenumbers(5,5,6)),会绕过校验直接计算,不符合你要求输入不同数值的规则。 - 代码冗余:重复生成输入向量、重复计算最大值索引,可优化提升可读性。
修正后可运行代码
largenumbers <- function(d,e,f) { # 预存输入向量,避免重复构造 input_nums <- c(d, e, f) # 校验所有数值是否唯一,比逐一判断相等更简洁 if (length(unique(input_nums)) != 3) { print("Please provide different numbers") } else { largest <- max(input_nums) second_largest <- max(input_nums[-which.max(input_nums)]) return(largest^2 + second_largest^2) } } # 测试调用 largenumbers(4,5,6)
运行结果
调用测试用例largenumbers(4,5,6)会正常输出结果61,符合6²+5²=36+25=61的计算逻辑。
内容的提问来源于stack exchange,提问作者user16461886
相关产品推荐
相关产品推荐

