#include <stdio.h> int main() { int n; float i, j, sum1 = 0, sum2 = 0; //注意这里定义i,j为易错点。 scanf("%d", &n); if(n%2=0){ for(i=0;i<=n/2;i++) sum1+=(2i-1)/(4i-3); for(j=0;j<=n/2;j++) sum2+=-(2 * j)/(4 * j - 1);} else{ for(i=0;i<=(n+1)/2;i++) sum1+=(2i-1)/(4i-3); for(j=0;j<=(n+1)/2;j++) sum2+=-(2 * j)/(4 * j - 1);} printf("%.3f"sum1+sum2); return 0; } 哪里出错
时间: 2024-01-14 15:04:26 浏览: 67
#include <stdio.h>
4星 · 用户满意度95%
该代码中出现了几个问题:
1.在判断n是否为偶数时,应该使用“==”而不是“=”,因为“=”是赋值运算符,不会进行逻辑判断。
2.在for循环中,应该使用乘法运算符“*”,而不是简单的拼接符“”,来计算2i-1和4i-3。
3.在printf语句中,应该使用加号“+”来连接两个数,而不是简单的拼接符“”。
修改后的代码如下:
```c
#include <stdio.h>
int main() {
int n;
float i, j, sum1 = 0, sum2 = 0;
scanf("%d", &n);
if(n % 2 == 0){
for(i = 1; i <= n / 2; i++)
sum1 += (2 * i - 1) / (4 * i - 3);
for(j = 1; j <= n / 2; j++)
sum2 += -(2 * j) / (4 * j - 1);
}
else{
for(i = 1; i <= (n + 1) / 2; i++)
sum1 += (2 * i - 1) / (4 * i - 3);
for(j = 1; j <= (n + 1) / 2; j++)
sum2 += -(2 * j) / (4 * j - 1);
}
printf("%.3f", sum1 + sum2);
return 0;
}
```
阅读全文