#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 我知道它的代码很简单,但是我无法看到问题,任何人都可以帮助我吗?
答案 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();
}
希望这会有所帮助