C语言实现n到0递减顺序减法运算代码错误求修正
C语言n到0递减减法代码问题修正
存在的错误
- 错误1:
sum局部变量未初始化,C语言中未显式初始化的栈局部变量会携带随机垃圾值,直接执行自减运算无法得到正确结果。 - 错误2:循环运算逻辑不符合需求:你需要的运算逻辑是 n作为被减数,依次减去n-1到0的所有数,原代码从i=n就开始执行减法,相当于多减了一次n,逻辑完全错位。
修正后的代码
#include<stdio.h> int main(void) { int i, n, sum; printf("Enter any number:"); scanf("%d", &n); // 初始化sum为被减数n sum = n; // 从n-1开始递减到0,依次作为减数 for(i = n-1; i >= 0; i--) { sum -= i; } printf("%d\n", sum); return 0; }
效果验证
输入n=5时,运算过程为5-4-3-2-1-0,最终输出结果为-5,符合预期。
内容的提问来源于stack exchange,提问作者Pushhu
相关产品推荐
相关产品推荐

