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

C语言:含scanf的for循环未执行,求排查原因

问题分析:For循环未执行的原因及相关疑问解答

嘿,我来帮你拆解一下你的问题:

1. 循环未执行的核心原因

你写的循环条件是for(i=0;i>6;i++),初始值i=0,而0>6是false(假),所以循环的判断条件一开始就不满足,自然不会执行任何循环体代码。你应该把条件改成i<6或者i<=5(如果你想循环6次的话),比如:

for(i=0;i<6;i++) {
    // 你的循环逻辑
}

2. 关于%i和%d的疑问

在scanf中,%d和%i对于读取十进制整数来说效果完全一致,不用纠结。唯一的区别是%i还能识别八进制(以0开头)和十六进制(以0x开头)的整数,而%d只认十进制。如果你的输入都是十进制数值,用哪个都没问题。

额外的代码小建议

  • 读取字符串时,scanf("%s", &firstName1[0]);可以简化成scanf("%s", firstName1);,因为数组名本身就是指向数组首元素的指针,不需要再加&和下标。
  • 你写的scanf(" %d ", &...里,格式字符串前后的空格会匹配任意空白字符(包括换行、空格、制表符),如果不是特意需要跳过空白,建议写成scanf("%d", &scores[i]);(假设你要把值存到scores数组里),避免输入时出现意外的阻塞。
  • 注意你的代码里scanf(" %d ", &...没有写完,记得补全变量名哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:47:51