gpt4 book ai didi

c - 怎样才能正确减法呢?

转载 作者:行者123 更新时间:2023-11-30 20:45:43 25 4
gpt4 key购买 nike

我尝试对多个数字进行减法,但是这段代码不会给出正确的结果,我该如何更改它?

#include <stdio.h>

int main(void) {
int nnr, i, nr[100], rez;

rez = 0;
printf("\nHow many numbers do you want to subtract?\n");
scanf("%d", &nnr);

printf("\nWrite the numbers:\n");
for(i = 1; i <= nnr; i++) {
printf("%d: ", i);
scanf("%d", &nr[i]);
}

for(i = 1; i <= nnr; i++) {
rez += nr[i] - rez;
}

printf("\nResult: %d\n", rez);
}

最佳答案

您在注释中澄清,当给定由 2、5 和 7 组成的三个输入数字时,您希望程序执行计算 2 - 5 - 7 并打印结果。但你的代码是错误的。

这里是关键部分:

    rez = 0;

[..]

    for(i = 1; i <= nnr; i++) {
rez += nr[i] - rez;
}

这给了你

  • rez = 0 + 2 - 0 (= 2)
  • rez = 2 + 5 - 2 (= 5)
  • rez = 5 + 7 - 5 (= 7)

事实上,我们可以概括为认识到 x += y - x 形式的构造大致相当于 x = y,但存在风险算术溢出。

显然,您需要使用 rez -= nr[i] 形式的表达式(等效于:rez = rez - nr[i]),除了非常第一个数字,您想要 rez = nr[i]。如何实际实现这一点留作练习。

关于c - 怎样才能正确减法呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50426839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com