我想从用户定义函数返回多个值,但它只返回一个变量。这是代码:
#include <stdio.h>
double sum_n_avg(double, double, double, double*, double*);
int main()
{
double n1, n2, n3, sump, avgp;
printf("enter numbers:");
scanf("%lf%lf%lf", &n1, &n2, &n3);
printf("sum and average is %lf",sum_n_avg(n1, n2, n3, &sump, &avgp));
return 0;
}
double sum_n_avg(double n1, double n2, double n3, double *sump, double *avgp)
{
*sump = n1 + n2 + n3;
*avgp = *sump / 3;
}
最佳答案
您的代码具有未定义的行为,如 sum_n_avg()
不返回任何内容,但 printf("sum and average is %lf", ??);
期望一个值.
但你期待这样的事情
void sum_n_avg(double n1,double n2,double n3,double *sump,double *avgp) {
*sump=n1+n2+n3;
*avgp=*sump/3;
}
int main() {
double n1,n2,n3,sump,avgp;
printf("enter numbers:");
scanf("%lf%lf%lf",&n1,&n2,&n3);
sum_n_avg(n1,n2,n3, &sump,&avgp); /* call like this */
printf("sum and average is %lf and %lf\n",sump,avgp);/*sump and avgp gets updated from sum_n_avg() function */
return 0;
}
关于c - 我想使用指针从函数返回多个值,但它返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49844622/