#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <math.h>
int main() {
int t;
scanf("%d",&t);
while (t--) {
int num;
scanf("%d",&num);
int *arr = (int *) malloc((num+2)*sizeof(int));
memset(arr, 0,num+2);
for (int i =1;i<=num;i++){
int middle;
scanf("%d",&middle);
arr[i] = middle;
}
int max=INT_MIN;
int min = INT_MAX;
int sum =0;
for(int i =1;i<=num;i++){
if (arr[i]>max){
max = arr[i];
}
if (arr[i]<min){
min = arr[i];
}
sum +=arr[i];
}
int jizhi = max - min;
double avg = sum / (num*1.0);
double sum_2=0.0;
for(int i=1;i<=num;i++){
sum_2 += pow(arr[i] - avg, 2);
}
double fangcha = sum_2/num;
printf("%d %.3lf\n",jizhi,fangcha);
}
}
需要注意精度和类型。类型问题会导致精度问题



京公网安备 11010502036488号