求1-1/2+1/3-1/4+…-1/100 之和
代码如下:
#include<stdio.h>
#define num 1.0/i
int main(){
double sum=1;
int i=1;
while(i<=100){
i++;
num=1.0/i;
if(i%2 ==0){
sum -= num;
}
else{
sum += num;
}
}
printf("%lf",sum);
}
``
在写这段代码的时候遇到的一个比较需要注意的问题是这里的num
一开始的代码是这样的
有两个容易犯错的地方
#include<stdio.h>
int main(){
double sum=1;
int i=1;
double num;
while(i<100){
i++; 问题 1.
num=1/i; —>1/i 分子和分母都为int 类型 得出来的数会比
if(i%2 ==0){ 实际小因为最后得到的是int 如1/2=0.5 因为
sum -= num; 是int类型 取整数部分为0 最后得到的是0
}
else{
sum += num;
}
}
printf("%lf",sum);
}
#include<stdio.h>
#define num 1.0/i 问题2—》进行预处理后 无需在进数据类型声明,
int main(){ 若在进行声明则会报错。这里对num
double sum=1; 进行替换
int i=1;
while(i<100){
i++;
num=1/i;
if(i%2 ==0){
sum -= num;
}
else{
sum += num;
}
}
printf("%lf",sum);
}
若有写的不对的地方,欢迎大家指教,谢谢!!