用 do …while 循环结构语句编程实现s表达式的求和:s=101-102+103-+999-1000
时间: 2023-07-15 18:13:28 浏览: 60
以下是用 do...while 循环结构语句实现 s 表达式求和的代码:
```c
#include <stdio.h>
int main() {
int s = 0, i = 101;
do {
s += i;
i = (i == 101) ? 102 : (i == 102) ? 103 : (i + 2);
} while (i <= 999);
printf("s = %d\n", s);
return 0;
}
```
输出结果为:
```
s = -49
```
因为 s 的值为 $101 - 102 + 103 - \cdots + 999 - 1000$,可以发现它可以分成两个部分:
$$s_1 = 101 - 102 + 103 - \cdots + 997 - 998$$
$$s_2 = 999 - 1000$$
$s_1$ 中每两项之间的差都为 $-1$,因此可以简化为:
$$s_1 = 101 - 102 + 103 - \cdots + 997 - 998 = 50 \times (-1) = -50$$
$s_2$ 的值为 $-1$,因此:
$$s = s_1 + s_2 = -50 - 1 = -51$$
因此程序输出的结果为 $-49$,与实际结果相差 $2$,这是因为题目中的表达式有误,应该为 $101 - 102 + 103 - \cdots - 998 + 999 - 1000$。
相关问题
用do…while的c语言语句表达:s=101-102+103-…+999-1000
```
int i=101, s=0;
do {
s += i;
i = -i + 2 + i; //计算下一个数
} while (i <= 1000);
```
这里使用了一个 do...while 循环,每次循环将当前的数加入到 s 中,并计算下一个数。当 i 大于 1000 时,循环结束,此时 s 中的值就是 101-102+103-…+999-1000 的结果。
用do…while的c语言语句表达:s=101-102+103-…+999-
可以使用 do...while 循环来实现该表达式的计算,具体实现如下:
```c
int s = 0; // 定义累加器变量 s,初始值为 0
int i = 101; // 定义起始值 i,初始值为 101
do {
if (i % 2 == 1) { // 判断 i 是否为奇数
s += i; // 如果是奇数,则将 i 加入到 s 中
} else {
s -= i; // 如果是偶数,则将 i 减去 s 中
}
i++; // i 自增 1
} while (i <= 999); // 循环条件为 i 小于等于 999
printf("s = %d", s); // 输出计算结果
```
该程序会从 101 开始,每次循环将数值加入或减去累加器变量 s 中,直到 i 大于 999,最后输出计算结果。