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

如何用循环在R语言中向集合输入数字并解决求和代码问题

解决你的R代码求和问题

嘿,我来帮你排查下这段代码的问题,让它能正确计算9个数字的总和!

你的代码里的核心问题

  • 循环变量和向量重名了:你把循环变量命名为homescore,这和一开始定义的空向量是同一个名字。每次循环时,homescore会被覆盖成1到9的整数,之前通过append添加的输入值都会丢失,这是导致结果不对的关键原因。
  • 类型转换时机可以优化:readline读取的输入默认是字符串类型,你每次append后再转成数值型虽然能生效,但更高效的方式是读取时直接转换。
  • 缺少求和并打印的步骤:你的代码最后没有计算总和并输出的逻辑,所以就算向量正确了也看不到结果。

修正后的代码

下面是调整后的代码,我会标注每一步的作用:

# 先初始化一个空的数值型向量,用来存储输入的分数
homescore <- numeric() 

# 用i作为循环变量,避免和存储分数的向量重名
for (i in 1:9) { 
  # 读取输入并直接转换为数值型,避免后续类型问题
  score <- as.numeric(readline(prompt = "Enter Score: ")) 
  # 将读取到的分数添加到向量中
  homescore <- append(homescore, score) 
}

# 计算总和并打印出来
total_sum <- sum(homescore)
cat("9个数字的总和是:", total_sum, "\n")

更简洁的写法(可选)

在R里,我们可以不用for循环,用replicate函数更简洁地实现同样的功能:

# 一次性读取9个输入,自动转换为数值型向量
homescore <- replicate(9, as.numeric(readline(prompt = "Enter Score: ")))
# 计算并打印总和
cat("9个数字的总和是:", sum(homescore), "\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:04:59