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

C++统计数组偶数个数程序运行输出错误问题求解

代码错误说明

你的代码存在4处会导致运行异常、输出错误的问题:

  • 静态数组定义不合法:C++里长度固定的静态数组必须在编译阶段确定大小,int arr[] = {}定义的是长度为0的空数组,后续通过下标写入元素属于内存越界访问,会触发未定义行为,可能出现数据错乱、程序崩溃等问题。
  • 逻辑位置错误:统计偶数的循环中,cout << par和return 0被写在了循环体内部,循环第一次执行就会打印当前计数、直接终止程序,无法完成全数组的遍历统计。
  • 冗余逻辑干扰输出:你额外写了一段遍历打印所有数组元素的循环,会把输入的数组元素连续输出,和最终展示偶数计数的需求无关,会打乱输出结果。
  • 代码层级混乱:多余的嵌套括号很容易引发逻辑归属错误,不利于排查问题。
修正后代码
#include <iostream>
using namespace std;

int main()
{
    int par = 0;
    int tam;
    cin >> tam;
    // 读取数组长度后再定义对应大小的数组存储元素
    int arr[tam];

    // 读取用户输入的数组元素
    for (int i = 0; i < tam; i++ ){
        cin >> arr[i];
    }

    // 遍历统计偶数个数
    for (int i = 0; i < tam; i++){
        if (arr[i] % 2 == 0) {
            par++;
        }
    }

    // 全量统计完成后输出最终结果
    cout << par;
    return 0;
}
兼容性提示

如果你使用的是MSVC这类不支持C风格变长数组的编译器,可以引入<vector>头文件,用动态数组替代静态数组,写法如下:

// 开头添加头文件引用
#include <vector>

// 原数组定义位置替换为
vector<int> arr(tam);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 11:33:40