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

使用循环创建指定星号图案的R代码问题求助

解决星号直角三角形图案的R代码问题

你的代码逻辑本身是正确的,问题出在输入函数scan(n=1)的使用上。在R控制台中,scan需要输入值后额外按下结束输入的快捷键(Unix/Linux按Ctrl+D,Windows按Ctrl+Z),否则程序会一直等待输入,导致你误以为代码仅支持h=1的场景。

修正后的代码(使用for+if)

将输入方式换成更友好的readline,就能正常获取h的值并生成对应图案:

h <- as.integer(readline(prompt="enter an integer:"))
for(i in 1:h){
  for(j in 1:h){
    if(i >= j){
      cat("*")
    }
  }
  cat("\n")
}

更高效的写法(仍符合循环+判断要求)

内层循环可以直接限定为1:i,减少不必要的循环次数,同时保留逻辑清晰性:

h <- as.integer(readline(prompt="enter an integer:"))
for(i in 1:h){
  for(j in 1:i){
    cat("*")
  }
  cat("\n")
}

使用while循环实现的版本

如果需要用while循环完成需求,代码如下:

h <- as.integer(readline(prompt="enter an integer:"))
i <- 1
while(i <= h){
  j <- 1
  while(j <= h){
    if(i >= j){
      cat("*")
    }
    j <- j + 1
  }
  cat("\n")
  i <- i + 1
}

运行上述代码后,输入h=2会输出:

**

输入h=5会输出:

**




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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:20:26