花有重开之日 发表于 2021-12-13 17:23:38

代码意思相同,输入结果不一样,求助!

#include<stdio.h>
int main()
{
int i,n;
int d=1;
double sum=0.0;
scanf("%d",&n);
for (i=1;i<=n;i++)
{   sum=sum+1.0/d;
        d+=2;
}
printf("%.6lf",sum);
return 0;
}
#include<stdio.h>
int main()
{
int i,n;

double sum=0.0;
scanf("%d",&n);
for (i=1;i<=n;i+=2)
{   sum=sum+1.0/i;
       
}
printf("%.6lf",sum);
return 0;
}
当输入23时,答案不一样,为什么。

番杰 发表于 2021-12-13 17:32:39

本帖最后由 番杰 于 2021-12-13 17:36 编辑

两个代码循环的次数不一样。
第一个:for (i=1;i<=n;i++)   输入23,循环23次
第二个:for (i=1;i<=n;i+=2)   输入23,循环12次

注意 i++ 和 i += 2 ;一个i自增1,一个i自增2。
循环次数不同,
结果肯定不一样。
页: [1]
查看完整版本: 代码意思相同,输入结果不一样,求助!