最大・最小値をデータの並び替えにより行っています。単純に大小の比較だけでもできます。
#include <stdio.h> #include <math.h> #define DATA_N 10 //----------------------------------------------------------------- void swapvalue(double *v1,double *v2); void simple_sort(double* a,int n); double calc_sd(double* a,int n); double calc_mean(double* a,int n); //----------------------------------------------------------------- int main() { int i; double a[DATA_N]; // input datas printf("input %ds value:\n",DATA_N); for(i=0;i<DATA_N;i++){ printf("[%d]:",i+1); scanf("%lf",&a[i]); } simple_sort(a,DATA_N); // display printf("max value = %lf\n",a[DATA_N-1]); printf("min value = %lf\n",a[0]); printf("mean value = %lf\n",calc_mean(a,DATA_N)); printf("SD value = %lf\n",calc_sd(a,DATA_N)); return 0; } //----------------------------------------------------------------- // Swap values //----------------------------------------------------------------- void swapvalue(double *v1,double *v2) { double tmp=*v2; *v2=*v1; *v1=tmp; } //----------------------------------------------------------------- // Simple Sorting Algorithm //----------------------------------------------------------------- void simple_sort(double* a,int n) { int i,j; for(i=0;i<n;i++) for(j=i;j<n;j++){ if(a[j]<a[i]) swapvalue(&a[j],&a[i]); } } //----------------------------------------------------------------- // Calc Standard Deviation //----------------------------------------------------------------- double calc_sd(double* a,int n) { int i; double mean=calc_mean(a,n); double sd=0; for(i=0;i<n;i++) sd += pow(a[i]-mean,2); sd/=(double)n; return sqrt(sd); } //----------------------------------------------------------------- // Calc mean value //----------------------------------------------------------------- double calc_mean(double* a,int n) { int i; double mean=0; for(i=0;i<n;i++) mean += a[i]; mean/=n; return mean; } |
Gami[390]% ./list_11.exe input 10s value: [1]:3 [2]:4 [3]:2.3 [4]:3.1 [5]:9.1 [6]:5.3 [7]:6.7 [8]:6.1 [9]:2.8 [10]:8.2 max value = 9.100000 min value = 2.300000 mean value = 5.060000 SD value = 2.279123 Gami[391]% |