竞赛讨论区 > float与double的问题,新手求助
头像
牛客feb
发布于 2022-06-29 17:18
+ 关注

float与double的问题,新手求助

#include <bits/stdc++.h>

using namespace std;
int t,n,i,b;float c,sum;float k=0;float x;
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>n;
        int a[n];
        for(i=0; i<n; i++)
        {
            cin>>a[i];
        }
        int maxa;
        maxa=a[0];
        for(i=0; i<n; i++)
        {
            if(maxa<a[i])maxa=a[i];
        }
        int mina;
        mina=a[0];
        for(i=0; i<n; i++)
        {
            if(mina>a[i])mina=a[i];
        }
        b=maxa-mina;cout <<b<<" ";
        for(i=0;i<n;i++){
            sum+=a[i];
        }c=sum/n;
        for(i=0;i<n;i++){
           k=k+(c-a[i])*(c-a[i]);
        }x=k/n;
       cout<<fixed<<setprecision(3)<<x<<endl;
    }

    return 0;
}
我看题解平均值极差什么的都是double,我改成double结果还是不对,是哪出问题了
题解:#include <bits/stdc++.h>
using namespace std;
int main(){
    int T,n,*a,i,ji,fang;
    double sum,avg,sum1,avg1;
    cin>>T;
   while(T--)
   {
       cin>>n;
       a=new int[n];
       sum=0;
       for(i=0;i<n;i++){
           cin>>a[i];
           sum+=a[i];
       }
       sort(a,a+n);
       ji=a[n-1]-a[0];
       avg=sum/n;
       sum1=0;
       for(i=0;i<n;i++)
       {
           sum1+=(a[i]-avg)*(a[i]-avg);
       }
       avg1=sum1/n;
       printf("%d %.3f\n",ji,avg1);
   }
}

全部评论

(2) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐