#include <stdio.h>
#include <stdlib.h>
double calculate(int ar[], int npts, int *gtr);
int main()
{
int ar[4] = {1,2,3,0};
double result;
result = calculate(ar,4, &ar);
printf("%lf ",result );
return 0;
}
double calculate(int ar[], int npts, int *gtr)
{
double total =0;
int i = 0;
double average;
for(i=0; i<npts; i++)
{
total = total + ar[i];
}
average = total / npts;
return average;
for(i=0; i<npts; i++)
{
if(average < ar[i])
{
*gtr++;
}
}
return *gtr;
}
当我调用函数计算时,我想返回平均值和 *gtr 值 但平均仅返回平均值。 *gtr 用于计算有多少个数字大于数组中的平均数字。
最佳答案
据我了解,您想要返回平均值,并以某种方式获取 gtr 的值。您可以返回平均值,并使用指针将 gtr 值保存到另一个变量。
int main()
{
int ar[4] = {1,2,3,0};
double result;
int gtr = 0;
result = calculate(ar,4,>r);
printf("%lf\n",result );
printf("gtr : %d\n",gtr);
return 0;
}
double calculate(int ar[], int npts, int *gtr)
{
double total = 0 , average;
int i = 0;
for(i=0; i<npts; i++)
{
total = total + ar[i];
}
average = total / npts;
for( i = 0 ; i < npts ; i++ )
{
if(average < ar[i])
{
*gtr += 1;
}
}
return average;
}
关于c - 如何在不使用结构体的情况下在一个函数中返回两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33259430/