我无法找到c中的几何平均数

时间:2018-01-26 21:12:28

标签: c math average

#include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <string.h>
#include <math.h>

int main()
{

 int array[5];
 int x;
 int max;
 int y;
 float k;

 printf("Enter capacity of array")
 scanf("%d",&y);

 for(x=0;x<y;x++)
    {
     printf("Enter the numbers:");  
     scanf("%d",&array[x]);
     max*=array[x]; 
    }

  k=pow(max,(1/y) );

  printf("%d\n",max); 
  printf(" %f",k);

 getch();
 }

大家好,我想找到几何平均值,但我总是得到k = 1  我知道它的代码很简单,但是我无法看到问题,任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

对于int y,表达式1/y在大多数情况下等于0 ......

更准确地说,在所有情况下,除y为-1或0或+1时<。p>

因此,您可能需要先将其更改为1.0/y ...

答案 1 :(得分:-1)

检查一下。

1342342345345 34523453452343
0209239498238 29349203492342
2349234023443 99203900992344
2349234023443 182834349348
2923000444 9902342349234

答案 2 :(得分:-1)

#include <stdio.h>
#include <conio.h>
#include <math.h>

int main()
{
int x;
int max = 1;
int y;
float k;

printf("Enter capacity of array");
scanf("%d",&y);
int array[y];

for(x=0;x<y;x++)
    {
    printf("Enter the %d number:",x+1);  
    scanf("%d",&array[x]);
    max*=array[x]; 
    }

k=pow(max,(1.0/y) );

printf("%d\n",max); 
printf("%f",k);
getch();

}

希望这会有所帮助