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

如何编写起始值为2且包含int变量upperBound的C语言for循环?

如何编写起始值为2且包含int变量upperBound的C语言for循环?

你写的代码里,循环条件i <= upperBound其实已经是满足需求的正确写法——<=表示“小于或等于”,这样当i的值等于upperBound时,循环依然会执行一次,刚好实现“包含上限”的要求。

给你拆解下for循环的三个核心部分,帮你彻底理清楚:

  • 第一部分int i=2:完成循环变量的初始化,把起始值设为2,这部分没问题。
  • 第二部分i <= upperBound:循环的执行判断条件,只要这个条件结果为真,循环体就会继续运行。用<=而非<,就能让i取到upperBound这个目标值。
  • 第三部分i++:每次循环结束后,将i的值自增1,让循环变量逐步趋近上限,避免死循环。

另外注意你代码里的两个小问题:

  1. printf的字符串引号嵌套错误,正确写法是printf("%d is a prime number.", num);
  2. 质数判断逻辑颠倒了:如果num % i == 0,说明num能被i整除,那num不是质数,你当前的逻辑写反了。

修正后的完整代码示例:

// 假设num和upperBound已提前正确定义并赋值
for (int i = 2; i <= upperBound; i++) {
    if (num % i == 0) {
        printf("%d is NOT a prime number.\n", num);
        break; // 找到一个因数就可以提前退出循环,提升效率
    }
}
// 如果循环正常结束(未触发break),说明num不存在2到upperBound之间的因数,是质数
printf("%d is a prime number.\n", num);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:55:03