如何在不使用struct的情况下在一个函数中返回两个值? #包括 #包括 双重计算(int ar[],int NPT,int*gtr); int main() { int-ar[4]={1,2,3,0}; 双重结果; 结果=计算(ar、4和ar); printf(“%lf”,结果); 返回0; } 双重计算(整数ar[],整数NPT,整数*全球技术法规) { 双倍合计=0; int i=0; 双倍平均; 对于(i=0;i
您使函数几乎正确,必须以不同的方式进行调用如何在不使用struct的情况下在一个函数中返回两个值? #包括 #包括 双重计算(int ar[],int NPT,int*gtr); int main() { int-ar[4]={1,2,3,0}; 双重结果; 结果=计算(ar、4和ar); printf(“%lf”,结果); 返回0; } 双重计算(整数ar[],整数NPT,整数*全球技术法规) { 双倍合计=0; int i=0; 双倍平均; 对于(i=0;i,c,C,您使函数几乎正确,必须以不同的方式进行调用 首先,不要从函数返回 *GTR < /代码>;返回平均。 然后,将呼叫更改为 #include <stdio.h> #include <stdlib.h> double calculate(int ar[], int npts, int *gtr); int main() { int ar[4] = {1,2,3,0
首先,不要从函数返回<代码> *GTR < /代码>;返回<代码>平均。 然后,将呼叫更改为
#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
设置为零,否则它将保持未初始化状态。对于返回两个值,可以执行以下操作:
int gtr;
result = calculate(ar,4, >r);
printf("%lf %d\n",result, gtr);
双重计算(int-ar[],int-npts,int*gtr)
{
双倍合计=0;
int i=0;
双倍平均;
对于(i=0;i,根据我的理解,您希望返回平均值,并以某种方式获得gtr的值。您可以返回平均值,并使用指针将gtr值保存到另一个变量
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 avergage;
}
intmain()
{
int-ar[4]={1,2,3,0};
双重结果;
国际全球技术法规=0;
结果=计算(ar、4和全球技术法规);
printf(“%lf\n”,结果);
printf(“全球技术法规:%d\n”,全球技术法规);
返回0;
}
双重计算(整数ar[],整数NPT,整数*全球技术法规)
{
双倍合计=0,平均值;
int i=0;
对于(i=0;i)您在谈论什么struct
?到目前为止,您发布的代码中没有任何内容。您没有收到警告吗?您可以通过引用传递变量。@stuartd但是,使用union
很难返回两个值。
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;
}