#include<stdio.h>
int main(){
double sum1=0;
double sum2=0;
double sum3=0;
double sum;
int i;
for(i=1;i<=100;i++){
sum1=sum1+i;
}
printf("sum1结果是:%15.6f\n",sum1);
for(i=1;i<=50;i++){
sum2=sum2+i*i;
}
printf("sum2结果是:%15.6f\n",sum2);
for(i=1;i<=10;i++){
sum3=sum3+1/i;
}
printf("sum3结果是:%15.6f\n",sum3);
sum=sum1+sum2+sum3;
printf("sum结果是:%15.6f\n",sum);
return 0;
}
看啊,这个代码其实有问题。
因为分数那个,一开始的i是int 那么1/2 , 1/3 这种就会自动取整
所以 sum3结果就是1。
改正:
#include<stdio.h>
int main(){
double sum1=0;
double sum2=0;
double sum3=0;
double sum;
double i;//拒绝 int i;
for(i=1;i<=100;i++){
sum1=sum1+i;
}
printf("sum1结果是:%15.6f\n",sum1);
for(i=1;i<=50;i++){
sum2=sum2+i*i;
}
printf("sum2结果是:%15.6f\n",sum2);
for(i=1;i<=10;i++){
sum3=sum3+1/i;
}
printf("sum3结果是:%15.6f\n",sum3);
sum=sum1+sum2+sum3;
printf("sum结果是:%15.6f\n",sum);
return 0;
}