【发布时间】:2014-09-28 20:41:53
【问题描述】:
我试图将数字 (x0) 的倍数与级数 (r) 和次数 (n) 相加。如果我使用数字 x0 = 6, r = 3, n = 3,结果应该是 6+9+12=27,但程序总是给我 18。
我尝试不同时间更改公式,但如果我在纸上这样做,结果是正确的,所以我担心问题可能出在语法上......
所以有C语言的程序:
#include <stdio.h>
int sum_progression(int x0, int r, int n)
{
return (n/2) * ((2 * x0) + ((n - 1) * (r)));
}
void test_sum_progression(void)
{
int x0;
int r;
int n;
scanf("%d", &x0);
scanf("%d", &r);
scanf("%d", &n);
int z = sum_progression(x0,r,n);
printf("%d\n", z);
}
int main(void)
{
test_sum_progression();
return 0;
}
感谢您的帮助!
【问题讨论】:
-
printf("%d\n", (3/2));. -
现在让我们给他一些时间来学习吧。
-
我不明白:/我是 C 新手,有些东西不太好理解。为什么我应该打印 3/2?
-
@BrunoRodrigues:深入了解问题的根源。
-
天哪,我现在明白了:/ 所以要解决我可以使用 double 对吗?
标签: c math integer-division arithmetic-expressions