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

C++实现数组首尾交换的switchEnds函数代码是否正确?

代码验证结果

你的代码核心功能逻辑正确,运行测试用例后会输出5 2 3 4 1 ,已经实现了交换数组首尾元素的需求,但存在两处和题目要求不符、需要优化的点:

  • 函数名不匹配:题目明确要求函数名为switchEnds,你实现的函数名是switchEnd,少了末尾的s,严格判题场景下会因为函数签名不匹配判定为错误
  • 缺少边界判断:如果传入的size小于等于1,访问array[size-1]会出现数组越界问题,建议在函数开头增加判断,size<=1时直接返回无需交换

编写函数void switchEnds(int *array, int size);,传入参数为数组首地址和数组大小,函数功能为交换数组第一个和最后一个元素的值。

修正后完整代码

#include <iostream>
using namespace std;

// 修正函数名,增加边界校验
void switchEnds(int *array, int size){
    if (size <= 1) return;
    int temp = array[0];
    array[0] = array[size-1];
    array[size-1] = temp;
}

int main()
{
    const int size = 5;
    int array[size] = {1,2,3,4,5};
    
    switchEnds(array, size);
    
    for (int c = 0; c < size; c++)
        cout << array[c] << " ";
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:30:04