#include<stdio.h>
#include<math.h>
main()
{
int sign=1,i=0;
float sum=0.0,j=0.0;
for(i=1;fabs(j)>1e-4;i=i+2)
{
j=sign/(i*1.0);
sum=sum+j;
sign=-sign;
}
sum=sum*4;
printf("sum=%f\n",sum);
}
8 个解决方案
#1
应为你的 j 初始值为 0, 不满足 fabs(j)>1e-4 ,根本就不会进循环。
#2
sign =-sign;
这句能编译过去?
sign = sign *(-1);
这句能编译过去?
sign = sign *(-1);
#3
for循环不执行了,因为一到for判断的时候j=0了,改一下,初始化j = 1.0,另外,最好还是用double类型
#include <stdio.h>
#include <math.h>
main()
{
int sign=1,i=0;
double sum=0.0,j=1.0;
for(i=1;fabs(j)>1e-4;i=i+2)
{
j=sign/(i*1.0);
sum=sum+j;
sign=-sign;
}
sum=sum*4;
printf("sum=%f\n",sum);
}
#4
1楼讲的是
#5
fabs(j)>1e-4
没有进循环啦
j的初值改下
没有进循环啦
j的初值改下
#6
for循环里面的语句没执行
#7
#include <stdio.h>
#include <math.h>
main()
{
int sign=1, i=0;
float sum=0.0, j=0.0;
j = sign / (1 * 1.0);
for(i = 3; fabs(j) > 1e-4; i = i + 2)
{
sum += j;
sign = -sign;
j=sign/(i*1.0);
}
sum *= 4;
printf("sum=%f\n",sum);
}
#8
public class test2 {
public static void main(String[] args) {
int i = 1;
double e = 0.0, t = 1.0;
double pi = 0.0;
while (1 / t >= Math.pow(10, -6)) {
t = 2 * i - 1;
if (i % 2 != 0) {
e += 1 / t;
} else {
e -= 1 / t;
}
i++;
}
pi = 4 * e;
System.out.println(pi);
}
}
public static void main(String[] args) {
int i = 1;
double e = 0.0, t = 1.0;
double pi = 0.0;
while (1 / t >= Math.pow(10, -6)) {
t = 2 * i - 1;
if (i % 2 != 0) {
e += 1 / t;
} else {
e -= 1 / t;
}
i++;
}
pi = 4 * e;
System.out.println(pi);
}
}
#1
应为你的 j 初始值为 0, 不满足 fabs(j)>1e-4 ,根本就不会进循环。
#2
sign =-sign;
这句能编译过去?
sign = sign *(-1);
这句能编译过去?
sign = sign *(-1);
#3
for循环不执行了,因为一到for判断的时候j=0了,改一下,初始化j = 1.0,另外,最好还是用double类型
#include <stdio.h>
#include <math.h>
main()
{
int sign=1,i=0;
double sum=0.0,j=1.0;
for(i=1;fabs(j)>1e-4;i=i+2)
{
j=sign/(i*1.0);
sum=sum+j;
sign=-sign;
}
sum=sum*4;
printf("sum=%f\n",sum);
}
#4
1楼讲的是
#5
fabs(j)>1e-4
没有进循环啦
j的初值改下
没有进循环啦
j的初值改下
#6
for循环里面的语句没执行
#7
#include <stdio.h>
#include <math.h>
main()
{
int sign=1, i=0;
float sum=0.0, j=0.0;
j = sign / (1 * 1.0);
for(i = 3; fabs(j) > 1e-4; i = i + 2)
{
sum += j;
sign = -sign;
j=sign/(i*1.0);
}
sum *= 4;
printf("sum=%f\n",sum);
}
#8
public class test2 {
public static void main(String[] args) {
int i = 1;
double e = 0.0, t = 1.0;
double pi = 0.0;
while (1 / t >= Math.pow(10, -6)) {
t = 2 * i - 1;
if (i % 2 != 0) {
e += 1 / t;
} else {
e -= 1 / t;
}
i++;
}
pi = 4 * e;
System.out.println(pi);
}
}
public static void main(String[] args) {
int i = 1;
double e = 0.0, t = 1.0;
double pi = 0.0;
while (1 / t >= Math.pow(10, -6)) {
t = 2 * i - 1;
if (i % 2 != 0) {
e += 1 / t;
} else {
e -= 1 / t;
}
i++;
}
pi = 4 * e;
System.out.println(pi);
}
}