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

C语言使用for循环实现a到b连续序列相减功能的问题求解

原代码问题梳理

  • 控制流错误:打印末尾数值、输出结果、程序返回语句均放在for循环内部,第一次循环执行就会直接终止程序,无法完成多轮遍历
  • 计算逻辑错误:连续相减的初始值应为起始数a,再依次减去后续数值,原代码sum初始为0直接逐个减所有数,计算结果不符合需求
  • 输出逻辑错误:循环内部重复打印结果和末尾值,无法输出符合要求的连续减号表达式

正确实现代码

#include <stdio.h>
int main() {
    int a, b, i, sum;
    printf("\a");
    printf("\n\t\t🔸 What is the number you want to begin"               
           " subtraction with ?   ");
    scanf("%d", &a);
    printf("\n\t\t🔸 What is the number you want to end"
           " subtraction with ?   ");
    scanf("%d", &b);
    
    printf("\a");
    printf("\n\t\t🔸 The result of the subtraction of numbers from %d to %d :\n", a, b);
    printf("\t\t   ");
    
    // 初始化sum为起始值a
    sum = a;
    printf("%d", a);
    // 从a的下一个数遍历到b,依次减并输出
    for (i = a - 1; i >= b; i--) {
        printf(" - %d", i);
        sum -= i;
    }
    // 循环结束后输出结果
    printf(" = %d\n\n", sum);
    return 0;
}

效果验证

输入a=8、b=5时,程序会输出8 - 7 - 6 - 5 = -10,完全符合预期要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:36:05