gpt4 book ai didi

c - 返回具有多个值的两个变量

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:48 24 4
gpt4 key购买 nike

我正在尝试使用一个函数来计算 h 的值,然后将这些 h 值输入到将计算 n 的方程式中。这就是我的代码目前的样子......

int findN(double xI, double xF) {


double h = 0.1;
int n;

do {
printf_s("%8.5f \n", h);
n = ((xF - xI) / h);
h = h / 10;


printf_s("%6d \n", n);
} while (h >= 0.00001);


return n;
}

我知道这个函数目前只会返回 n,但由于我是新手,所以我不确定如何同时返回 h 的所有值以及 n 的所有值...如果有人可以提供帮助并告诉我如何返回 n 和 h 的所有值,我将不胜感激。

谢谢。

最佳答案

返回多个值的典型方法是使用数组并将其指针传递给函数:

int f(double *h) {
h[0] = 1.1;
h[1] = 2.2;
}

int main()
{
// create pointer
double *h;

// initialize it with memory block
h = malloc(2*sizeof(double));

// call the function
f(h);

// show output
printf_s("%8.5f \n", h[0]);
printf_s("%8.5f \n", h[1]);

// release memory block
free(h);

return 0;
}

也可以在不分配内存的情况下创建相同的数组。它更简单,但数组仅存在,直到执行不离开它声明的函数范围。

int main()
{
// create array
double h[2];

// call the function
f(h);

// show output
printf_s("%8.5f \n", h[0]);
printf_s("%8.5f \n", h[1]);

return 0;
}

如果你只能在函数调用期间知道元素的数量,你可以在函数中分配数组并通过指针返回数组并在调用者处释放数组。

double* f() {
// create pointer
double *h;

// some size calculations
int size = 1+1;

// initialize it with memory block
h = malloc(size*sizeof(double));

// fill the array
h[0] = 1.1;
h[1] = 2.2;

// return array by pointer
return h;
}

int main()
{
// create pointer
double *h;

// call the function
h = f();

// show output
printf_s("%8.5f \n", h[0]);
printf_s("%8.5f \n", h[1]);

// release memory block
free(h);

return 0;
}

关于c - 返回具有多个值的两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43359263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com