我正在上Udemy C课程,并且对C中的函数产生了一些疑问。它的其中一项练习是关于使用函数进行温度转换(摄氏,F和K)的,而我的第一个念头是:
void CF(){
float temp1, temp2;
printf("Escribe que temperatura quieres convertir a Fahrenheit: ");
scanf("%f", &temp1);
temp2 = (temp1 * 1.8) + 32;
printf("La temperatura en Fahrenheit es: %f", temp2);
}
但是解决的练习使用:
float fahrenheit(float C){
float F=0;
F = (9*C)/5 + 32;
return F;
}
在通过功能介绍的同时,通过“ int main”程序输入数据。
我的问题是: -最好通过int主代码或函数引入数据? -为什么他使用“浮动”功能而我使用“无效”功能并且在两种情况下都能正常工作?
无论如何,我的代码都可以,但是我想知道什么更好,为什么。
在此先感谢您,请原谅我的英语。
函数的目的是封装常用的计算。如果将其编码为返回值,则无论何时要打印结果,都可以在更大的程序中随时调用它。因此,第二个功能更加可重用。
尽管编写该函数的方式没有错,但它假设您坐在键盘旁输入值,并且只想查看转换结果。
现在,假设您编写了一个工具,该工具需要从摄录表中获取摄氏温度列表,并希望将其全部转换为华氏温度。您的函数在这里不起作用,但是第二个版本可以与包装一起使用,以从电子表格中读取摄氏度值,调用该函数,然后将转换后的值放在其他位置。
通常,将功能的功能保持在最低限度是一个好的设计原则,以便可以在更多不同的情况下使用它。
最好使用后者(返回float的函数)。
为什么?
因为这使代码更可重用。
您的函数可能运行良好,但是如果您只想在没有用户输入的情况下从华氏转换为C,该怎么办?
基本上,您的功能是:
因此,您会看到,在第一个函数中,您所做的不仅仅是转换。