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

printf中三元运算符实现数组元素格式化输出的填空问题

问题:补全C语言循环实现数组元素的特定格式输出

给定一个包含n个整数的数组a,需补全以下for循环的空白部分(不得修改其他代码),实现以下输出规则:

  • 若数组元素个数大于1,第一个元素后输出冒号:
  • 其余元素之间输出逗号,
  • 最后一个元素后输出换行符\n

待补全的代码:

for (int i = 0; i < n; i++) {
    printf("%d%c", a[i], ":,\n"[_____]);
}

输入输出示例

  • 输入数组:1 2 3
  • 输出结果:1:2,3

空白处的解决方案

填入以下逻辑:

i == n-1 ? 2 : (i == 0 ? 0 : 1)

逻辑解释

字符串":,\n"的三个字符对应索引如下:

  • 索引0::(冒号)
  • 索引1:,(逗号)
  • 索引2:\n(换行符)

通过三目运算符根据当前循环索引i选择对应索引:

  1. 当i == n-1(处理最后一个元素),选择索引2,输出换行符
  2. 当i == 0(处理第一个元素),选择索引0,输出冒号
  3. 其余情况(处理中间元素),选择索引1,输出逗号

补全后的完整代码:

for (int i = 0; i < n; i++) {
    printf("%d%c", a[i], ":,\n"[i == n-1 ? 2 : (i == 0 ? 0 : 1)]);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:32:46