我需要一个程序来评估任意数量整数的Min,Max,Avg和Geometric avg。到目前为止,这是我想出的。在我添加平均值之前,Min和Max都工作正常。现在Min和Avg工作正常,但是Max给出了错误的数字(通常是第二大数字)。几何平均数也只有0.00000。谢谢你的帮助。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc,char const *argv[]) {
int arr[100],max,i,min,size,lok = 1;
float arit = 0,geom = 0,sum = 0,prod = 0;
printf("\nSay how many integers you want to input: ");
scanf("%d",&size);
printf("\nType %d integers: ",size);
for (i = 0; i < size; i++) //put values in arr
scanf("%d",&arr[i]);
max = arr[0];
min = arr[0];
for (i = 1; i < size; i++) { //calc maximum
if (arr[i]>max) {
max = arr[i];
lok = i+1;
}
if (arr[i]<min) { //calc minimum
min = arr[i];
lok = i+1;
}
for (i = 0; i < size; i++) { //calc avg
sum = sum + arr[i];
}
arit = sum/size;
for (i = 0; i < size; i++) {
prod = prod * arr[i];
}
geom = pow(prod,1./size);
}
printf("\n%d is maximum",max);
printf("\n%d is minimum",min);
printf("\n%f is avg",arit);
printf("\n%f is geometric avg",geom);
return 0;
}