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

C++使用for循环时出现segmentation fault,请求错误排查

解决代码中的段错误及逻辑问题

问题分析

  • 数组越界触发段错误:你的words数组只有9个元素,合法索引范围是0~8,但循环条件写的是i <=9,当i循环到9时,访问words[9]属于越界访问,直接导致segmentation fault。
  • 逻辑不符合预期需求:原代码仅单独判断input_a和input_b的奇偶,但实际需要遍历input_a到input_b的所有数:≤9的输出对应英文单词,>9的判断奇偶。

修正后的代码

#include <iostream>
#include <string>
using namespace std;

int main() {
    string words[9] = {"one","two","three","four","five","six","seven","eight","nine"};
    int input_a, input_b;
    cin >> input_a >> input_b;
  
    for (int num = input_a; num <= input_b; ++num) {
        if (num <= 9) {
            cout << words[num - 1] << endl;
        } else {
            cout << (num % 2 == 0 ? "even" : "odd") << endl;
        }
    }
    return 0;
}

测试结果

使用给定测试输入:

8
11

输出与预期完全一致:

eight
nine
even
odd

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:04:52