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

C语言for循环序列相减函数调整:实现从最小到最大数依次相减

改造后的C函数实现方案

原函数存在的问题

原函数仅支持a >= b的场景,循环从a-1向下遍历到b,无法适配a < b时从小到大遍历区间的需求。

改造思路

  • 首先判断参数a和b的大小,确定区间的最小/最大值,保证遍历顺序始终从小到大
  • 初始运算值取区间的最小值,依次减去区间内后续的所有整数即可

改造完成的代码

int myfunc(int a, int b)
{
    // 确定区间的上下限,保证从小到大遍历
    int start = a < b ? a : b;
    int end = a > b ? a : b;
    int result = start;
    // 从第二个数开始依次相减
    for(int index = start + 1; index <= end; index++)
    {
        result -= index;
    }
    return result;
}

效果验证

输入a=5、b=8时,运算逻辑为5-6-7-8,返回结果为-16,完全符合需求。无论输入的a和b谁大谁小,都会自动按从小到大的顺序执行相减操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:48:04