int i, sum; sum = 0; for (i = 1; i <= 2; i++){ sum = sum + 1.0/i; }
时间: 2023-12-06 13:05:08 浏览: 201
int i, sum;
sum = 0;
for (i = 1; i <= 2; i ) {
sum = sum 1.0/i;
}
在这段代码中,变量i的初始值为1,sum的初始值为0。然后进入循环,每次循环都会执行sum = sum + 1.0/i的操作,即将1.0/i的结果加到sum中。循环结束后,sum的值就是循环中所有1.0/i的和。
相关问题
#include <stdio.h> int main() { int sum1 = 0; int i = 0; for (i = 1; i <= 100; i+2) { sum1 =sum1 + 1/ i; } int sum2 = 0; for (int j = 2; j <= 100; j+2) { sum2 = sum2 + (-1) / j; } int sum = sum1 + sum2; printf("%d", sum); return 0; }
这段代码有两个问题:
1. 在 for 循环中,i 和 j 的自增应该是 i+=2 和 j+=2,而不是 i+2 和 j+2。因为 i+2 和 j+2 只是计算出了 i 和 j 增加后的值,但并没有将这个值赋值给 i 和 j。所以循环变量 i 和 j 的值始终不变,导致循环无法结束。
2. 在计算 sum1 和 sum2 的过程中,使用了整数相除,结果会被截断为整数,因此只会保留整数部分,而小数部分会被忽略。这样会导致计算结果不正确。
修改后的代码如下:
```c
#include <stdio.h>
int main() {
double sum1 = 0; // 将 sum1 和 sum2 改为 double 类型
double sum2 = 0;
for (int i = 1; i <= 100; i+=2) { // 将 i 和 j 的自增改为 i+=2 和 j+=2
sum1 = sum1 + 1.0 / i; // 将整数除法改为浮点数除法,保留小数部分
}
for (int j = 2; j <= 100; j+=2) {
sum2 = sum2 + (-1.0) / j; // 同上
}
double sum = sum1 + sum2; // 将 sum 改为 double 类型
printf("%f", sum); // 将输出格式改为 %f,输出浮点数
return 0;
}
```
下列程序的执行结果是( )。 void fun ( int *p ) { (*p)++; } main( ) { int a=5; fun(&a); printf("%d",a); } A. 5 B. a C. 6 D. 程序有误 分数 4 作者 王秀 单位 福州大学 在int a[ ][3] = { {1,4}, {3,2}, {4,5,6}, {0} };中,a[2][1]的值是( )。 A. 5 B. 0 C. 6 D. 2 分数 4 作者 颜晖 单位 浙江大学 下列程序段的输出结果是()。 int main(void) { for(int i = 1; i < 6; i ++) { if( i % 2 != 0) { printf("#"); continue; } printf("*"); } printf("\n"); return 0; } A. #*#*# B. ##### C. ***** D. *#*#* 分数 4 作者 颜晖 单位 浙大城市学院 以下程序段( )的功能是计算序列 1 + 1/2 + 1/3 + ... 的前N项之和。 A. int i, n, sum; scanf("%d", &n); sum = 0; for (i = 1; i <= n; i++){ sum = sum + 1.0/i; } B. int i, n; double sum; scanf("%d", &n); for (i = 1; i <= n; i++){ sum = sum + 1.0/i; } C. int i, n; double sum; scanf("%d", &n); sum = 0; for (i = 1; i <= n; i++){ sum = sum + 1.0/i; } D. int i, n; double sum; scanf("%d", &n); sum = 0; for (i = 1; i <= n; i++){ sum = sum + 1/i; } E. int i, n; double sum; scanf("%d", &n); sum = 0; for (i = 1, i <= n, i++){ sum = sum + 1.0/i; }
第一个问题的答案是C. 6。
第二个问题的答案是D. 2。
第三个问题的答案是A. #*#*#。
第四个问题的答案是C. int i, n; double sum; scanf("%d", &n); sum = 0; for (i = 1; i <= n; i++){ sum = sum + 1.0/i; }。
阅读全文