#include <stdio.h>
#include <stdlib.h>
int main() {
int a,b,c;
scanf("%d",&a);
for(int i=0;i<a;i++){
scanf("%d",&b);
long long *arr = (long long *)malloc(b * sizeof(long long));
if(arr == NULL){
return 1;
}
long long max,min,sum=0;
for(int i=0;i<b;i++){
scanf("%d",&arr[i]);
sum += arr[i];
if(i == 0){
max=arr[0];
min=arr[0];
}else{
if(arr[i]>max){
max=arr[i];
}
if(arr[i]<min){
min=arr[i];
}
}
}
long long d = max-min;
double avg = (double)sum/b;
double fc_sum = 0.0;
for(int i=0;i<b;i++){
fc_sum += (arr[i]-avg)*(arr[i]-avg);
}
double fc = fc_sum/b;
printf("%lld %.3f\n",d,fc);
}
return 0;
}
不知道为啥最后写free(arr)会示例第一组不通过



京公网安备 11010502036488号