我一直在尝试用 C 语言编写从 n 到 0 的数字减法(我的意思是按递减顺序,例如如果 n 是 5,则 5-4-3-2-1-0)。但我没有得到正确的答案。 这是我的代码,有错误的地方请指正。
#include<stdio.h>
int main(void) {
int i, n, sum;
printf("Enter any number:");
scanf("%d", &n);
for(i=n; i>=0; i--) {
sum -= i;
}
printf("%d\n", sum);
}
我已经完成了相同的代码,用于将 0 到 n 个数字相加。我做对了,根据该代码,我尝试进行减法,但没有得到正确的答案。 请大家帮帮我,谢谢。
最佳答案
变量sum
未初始化
int i, n, sum;
所以它有一个不确定的值。结果是这个声明
sum -= i;
调用未定义的行为。
您首先需要将其设置为变量 n 的输入值。
此外,由于变量 n 具有有符号整数类型 int
,因此没有什么可以阻止用户输入负数。在这种情况下,for循环将不会被执行。
如果我正确理解了作业
i mean in decrementing order like if n is 5 then 5-4-3-2-1-0)
那么你的程序可以如下所示
#include<stdio.h>
int main(void)
{
printf( "Enter any number: " );
int n = 0;
scanf( "%d", &n );
int sum = n;
while ( n < 0 ? n++ : n-- ) sum -= n;
printf( "sum = %d\n", sum );
}
如果输入数字5
那么输出将为
Enter any number: 5
sum = -5
如果输入数字-5
那么输出将为
Enter any number: -5
sum = 5
关于c - 按递减顺序求减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69271238/