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

C语言编程谜题:修改或添加1个字符使程序恰好打印20个星号

C语言单字符修改打印20个*的可行方案

原始代码

void main(){
   int i, n=20;
   for (i=0; i<n; i--)
      printf("*");
}

原始代码的问题是for循环中i从0开始持续递减,i < n条件永远成立,会进入死循环无限打印*。仅修改/添加1个字符的可行方案如下:

  • 方案1:将循环增量部分的i--改为i++
    逻辑:i从0开始每次自增1,当i增长到20时i < n条件不成立,循环刚好执行20次,打印20个*。
  • 方案2:将循环判断条件的i < n改为i + n
    逻辑:C语言中非0值等价于真,i从0开始每次自减1,i + n的取值依次为20、19、…、1、0,当取值为0时条件不成立,循环刚好执行20次,打印20个*。
  • 方案3:将循环增量部分的i--改为n--
    逻辑:i保持初始值0不变,n从20开始每次自减1,当n减少到0时i < n等价于0 < 0不成立,循环刚好执行20次,打印20个*。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:39:01