【发布时间】:2022-01-09 19:22:30
【问题描述】:
我正在尝试编写一个计算和打印两个数字的均值和方差的问题。我必须创建一个函数来计算它,然后只在主函数中打印结果。我选择的方式是使用一个包含 2 个位置的数组,其中第一个位置的平均值和第二个位置的方差值。 我认为问题在于将值分配给数组,这就是我无法正确执行的操作。有人可以用一些编码向我解释一下吗?如果有另一种不使用数组的方法,它也是有效的。
int * statistics (float x, float y){
double mean, var;
int i;
static int Arr[2];
mean = (x+y)/2;
var = ((x-mean)*(x-mean) + (y-mean)*(y-mean)) /2;
for (i = 0; i < 2; ++i) {
if (i=0)
{
Arr[i] = mean;
}
else
{
Arr[i] = var;
}
return Arr;
}
int main(){
int num1, num2, result;
num1 = 10;
num2 = 5;
result = statistics(num1, num2);
printf("%lf -- %lf", result[0], result[1]);
return 0;
}
【问题讨论】:
-
请注意
15 / 2等于7(整数除法),而15 / 2.0等于7.5。考虑使用struct stat{ double mean; double var;};。此外,如果不是骗子,相关:stackoverflow.com/questions/11656532/returning-an-array-using-c