【发布时间】:2014-09-23 10:56:53
【问题描述】:
我的老师想要从 x 到 y 的所有数字的总和...比如 x+(x+1)+(x+2)...直到 y。但我觉得我在这里做错了!
有人可以告诉我这里出了什么问题吗?
#include <stdio.h>
int sum_naturals(int n)
{
return (n-1) * n / 2;
}
int sum_from_to(int m)
{
return (m-1) * m / 2;
}
void test_sum_naturals(void)
{
int x;
scanf("%d", &x);
int z = sum_naturals(x);
printf("%d\n", z);
}
void test_sum_from_to(void)
{
int x;
int y;
scanf("%d", &x);
scanf("%d", &y);
int z = sum_naturals(x);
int b = sum_from_to(y);
printf("%d\n", z);
}
int main(void)
{
//test_sum_naturals();
test_sum_from_to();
return 0;
}
【问题讨论】:
-
您遇到了什么问题?
-
从 x 到 y 的总和是从 1 到 y 的总和减去从 1 到 x 的总和,这是你在做什么?
-
是的,但我只得到 x 的总和!就像我把 x 和 y 放在控制台上,这只会对 x 求和,就像我把 5 这会做 0+1+2+3+4... 我想要 x=5 和 Y=10 6+7+ 8+9+10
-
他们不允许我使用 for 循环
-
您在
test_sum_from_to函数中仅打印x此处printf("%d\n", z);的结果。你需要printf("x: %d y: %d \n", z,b);。