gpt4 book ai didi

c - 如何在c中使用无参数的void函数返回一个值

转载 作者:行者123 更新时间:2023-11-30 19:57:42 24 4
gpt4 key购买 nike

我是 C 语言和编码新手,遇到一个问题,要求我更改以下函数头:

float RealRoot_1(float a, float b, float c);
float RealRoot_2(float a,float b,float c);

成为:

void RealRoot_1(void);
void RealRoot_2(void);

有人告诉我这与全局变量有关,但我尝试了很长时间后仍然无法弄清楚。谁能解释一下如何做吗?非常感谢。

源文件如下:

#include<stdio.h>
#include<math.h>

int main()
{
float RealRoot_1(float a, float b, float c); // Prototype declaration
float RealRoot_2(float a, float b, float c);

// Defining Input Variables
float x, y, z;

// Defining Output Variables
float Root_1, Root_2;

printf("Please enter the factor of X^2: ");
scanf("%f",&x);

printf("Please enter the factor of X: ");
scanf("%f",&y);

printf("Please enter the free factor: ");
scanf("%f",&z);

Root_1 = RealRoot_1(x,y,z);
Root_2 = RealRoot_2(x,y,z);

printf("the First Root is: %f \n", Root_1);
printf("the Second Root is: %f \n", Root_2);

system("pause");
}


float RealRoot_1(float a, float b, float c)
{
float x;
x = (-1*b + sqrt(pow(b,2) - 4 * a * c)) / (2 * a);

return x;
}

float RealRoot_2(float a, float b, float c)
{
float x;
x = (-1*b - sqrt(pow(b,2) - 4 * a * c)) / (2 * a);

return x;
}

最佳答案

这可以通过使用全局变量来完成。您需要确保函数中使用的变量名称与主代码中使用的变量名称相同。

#include<stdio.h>
#include<math.h>

void RealRoot_1(void); // Prototype declaration
void RealRoot_2(void);

float x, y, z;
float Root_1, Root_2;

int main()
{

// Defining Output Variables

printf("Please enter the factor of X^2: ");
scanf("%f",&x);

printf("Please enter the factor of X: ");
scanf("%f",&y);

printf("Please enter the free factor: ");
scanf("%f",&z);

RealRoot_1();
RealRoot_2();

printf("the First Root is: %f \n", Root_1);
printf("the Second Root is: %f \n", Root_2);

system("pause");
}


void RealRoot_1(void)
{
Root_1 = (-1*y + sqrt(pow(y,2) - 4 * x * z)) / (2 * x);
}

void RealRoot_2(void)
{
Root_2 = (-1*y - sqrt(pow(y,2) - 4 * x * z)) / (2 * x);
}

请注意,这是比最初问题中给出的更糟糕的处理方式。在最初的练习中。您正在失去模块化性,并且使用太多全局变量通常是一个坏主意。

您还可以查看Are global variables bad?

关于c - 如何在c中使用无参数的void函数返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39349344/

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