Explain Quiz II 4
Main Function
No.
Code
1
//Finding a min max mean sd
2
#include<stdio.h>
3
#include<math.h>
4
void Find_Min_Max_Avg_std(int vals[], int numels, int *min_ptr, int *max_ptr, double
*avg_ptr, double *std_ptr);
5
main()
6
{
7
int temp,i;
8
int data[100];
9
int min, max;
10
double avg, std;
11
i=0;
12
//collect a data
13
for(;;)
14
{
15
scanf("%d", &temp);
16
if(temp!=-1)
17
{
18
data[i]=temp;
19
i++;
20
}
21
else
22
{
23
break;
24
}
25
}
26
//send to function
27
Find_Min_Max_Avg_std(data , i, &min, &max, &avg, &std);
28
printf("\nYou entered %d numbers \n", i);
29
printf("The maximum value is %d \n", max);
30
printf("The minimum value is %d \n", min);
31
printf("The average is %lf \n", avg);
32
printf("The standard diviation is %lf \n ", std);
33
}
Find_Min_Max_Avg_std Function
No.
Code
34
void Find_Min_Max_Avg_std(int vals[], int numels, int *min_ptr, int *max_ptr, double
*avg_ptr, double *std_ptr)
35
{
36
int i, j;
37
int temp;
38
double temp_sd;
39
*avg_ptr =0;
40
*std_ptr =0;
41
//sorted find min max
42
for(i=0;i<numels;i++)
43
{
44
for(j=0;j<numels;j++)
45
{
46
if(vals[i]<vals[j])
47
{
48
temp = vals[i];
49
vals[i] = vals[j];
50
vals[j] = temp;
51
}
52
}
53
}
54
//then min max
55
*min_ptr = vals[0];
56
*max_ptr = vals[numels-1];
57
//then avgerage and standard diviation
58
//find average
59
for(i=0;i<numels;i++)
60
{
61
*avg_ptr = *avg_ptr+vals[i];
62
}
63
*avg_ptr = *avg_ptr/numels;
64
//standard diviation
65
for(i=0;i<numels;i++)
66
{
67
temp_sd = pow((vals[i]-*avg_ptr),2);
68
*std_ptr = *std_ptr + temp_sd;
69
}
70
*std_ptr = sqrt(*std_ptr/numels);
71
}
• ก
13-25