【番杰的问答笔记】循环次数问题

1. 问题

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

#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;
}

2. 回答

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

注意 i++ 和 i += 2 ;一个i自增1,一个i自增2。
循环次数不同,
结果肯定不一样。

上一篇:7-1 报数 (10 分)输入两个正整数 n 和 m( (1<m<n<=50)),有 n 个人围成一圈,按顺序从 1 到 n 编号。从第一个人开始报数.......


下一篇:第四章总结