两种基本相同的方法,代20测试时输出来的两者数据相同,代50测试时怎么输出来的数据不同?

//C语言

//1.
#include<stdio.h>
void main()
{
 double a[20000];
    int n,i;
    double sum=0,s;
    scanf("%d",&n);
    a[0]=2;
    a[1]=3;
    for(i=2;i<n;i++)
    {
     a[i]=a[i-1]+a[i-2];
    }
    for(i=0;i<n;i++)
    {
     if(i==0)
     {
      s=a[i]/(i+1);
     }
     else if(i>0)
     {
      s=a[i]/a[i-1];
     }
     sum=sum+s;
    }
    printf("%.2lf",sum);
}



//2.
#include<stdio.h>
void main()
{
 int a[20000];
    int n,i;
    double sum=0,s;
    scanf("%d",&n);
    a[0]=2;
    a[1]=3;
    for(i=2;i<n;i++)
    {
     a[i]=a[i-1]+a[i-2];
    }
    for(i=0;i<n;i++)
    {
     if(i==0)
     {
      s=1.0*a[i]/(i+1);
     }
     else if(i>0)
     {
      s=1.0*a[i]/a[i-1];
     }
     sum=sum+s;
    }
    printf("%.2lf",sum);
}

 

查看全部
weixin_53089404
weixin_53089404
2021/01/13 22:24
  • c++
  • 点赞
  • 收藏
  • 回答
    私信

1个回复