gpt4 book ai didi

c - 为什么函数不会改变变量?

转载 作者:太空宇宙 更新时间:2023-11-04 05:13:32 25 4
gpt4 key购买 nike

在这段代码中我似乎得到了零,我不太熟悉为什么我不能用我创建的函数改变变量长度。任何帮助都可能有用。

     #include <stdio.h>
double get_length(double a);
int main(int argc, char* argv[])
{
double length = 0;
get_length(length);
printf("%lf", length);
return 0;
}
double get_length(double a)
{
printf("What is the rectangle's length?\n");
scanf("%lf", &a);
return a;
}

打印时返回 0.0000

最佳答案

您没有存储返回值。变化:

get_length(length);

到:

length = get_length(length);

无需传递 length当你这样做的时候。

另一种方法是传递一个地址:

#include <stdio.h>

void get_length(double * a);

int main(int argc, char* argv[]) {
double length = 0;
get_length(&length);
printf("%f", length);
return 0;
}

void get_length(double * a) {
printf("What is the rectangle's length?\n");
scanf("%lf", a);
}

请注意 %f , 不是 %lf , 是 double 的正确格式说明符在printf() .使用 %lfscanf() 是正确的, 然而。

关于c - 为什么函数不会改变变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19483459/

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