第一种情况:求
1
+
1
2
+
1
3
+
.
.
.
.
.
.
.
.
+
1
n
1+\dfrac{1}{2}+\dfrac{1}{3}+........+\dfrac{1}{n}
1+21+31+........+n1
代码一:
#include<stdio.h>
int main(){
//for循环,开始和终止都明确
int n;
double sum=0.0;
int i;
scanf("%d",&n);
for(i=1;i<=n;i++){
sum+=1.0/i;//除号两边有一个是浮点数,值就会是浮点数
}
printf("f(%d)=%f\n",n,sum);
}
第一种情况:求
1
−
1
2
+
1
3
−
.
.
.
.
.
.
.
.
+
1
n
1-\dfrac{1}{2}+\dfrac{1}{3}-........+\dfrac{1}{n}
1−21+31−........+n1(正负交替)
方法一:设置一个变int型的变量sign实现正负交替
#include<stdio.h>
int main(){
int n;
int sign=1;//设置一个sign实现正负号交替
double sum=0.0;
int i;
scanf("%d",&n);
for(i=1;i<=n;i++){
sum+=sign*1.0/i;
sign=-sign;
}
printf("f(%d)=%f\n",n,sum);
}
方法二:设置一个double型的sign变量,直接实现正负交替
#include<stdio.h>
int main(){
int n;
double sum=0.0;
double sign=1.0;//直接把sign定义成double类型,分子直接实现正负交替
int i;
scanf("%d",&n);
for(i=1;i<=n;i++){
sum+=sign/i;
sign=-sign;
}
printf("f(%d)=%f\n",n,sum);
}