重新编写温度转换程序,使用函数实现温度计算
#include <stdio.h>float temp(int m, float n);
/*test temp function */
main()
{
int i;
float p;
for (i = 0; i <= 200; i = i + 20)
printf("%d\t %6.1f\n", i, temp(i, p));
return 0;
}
float temp(int fath, float celsius)
{
int i;
float p;
p = 5.0 * (i - 32.0) / 9.0;
return p;
}
请问大佬这个哪有问题么
运行结果
0 -5.6
20 -599116928.0
40 -599116928.0
60 -599116928.0
80 -599116928.0
100 -599116928.0
120 -599116928.0
140 -599116928.0
160 -599116928.0
180 -599116928.0
200 -599116928.0
函数写错了,形参都没参与运算。。。。。。。(你看下是否想要这样的效果)
#include<stdio.h>
float change(int fahrenheit);
int main()
{
int i;
for(i=0;i<=200;i+=20)
printf("%-6d%5.2f\n",i,change(i));//注意得到的结果是摄氏度
return 0;
}
float change(int fahrenheit)//摄氏温度(C)与华氏温度(F)的换算式是:C = 5×(F- 32)/9
{
float celsius;
celsius=5.0*(fahrenheit-32)/9;
return celsius;
} sanguine_boy 发表于 2020-1-19 11:17
函数写错了,形参都没参与运算。。。。。。。(你看下是否想要这样的效果)
请问大佬怎么看形参有没有参与运算,为什么我那个形参没有参与运算呢? WwangHB 发表于 2020-1-19 18:19
请问大佬怎么看形参有没有参与运算,为什么我那个形参没有参与运算呢?
float temp(int fath, float celsius)你定义的这个函数的函数体里面都没用上形参fath和celsius,说明函数的形参没有意义,只是个摆设,我的理解是这样子 1.你的在temp(int fath,float celsius )中并没有使用 fath, celsius。
2.主函数中的temp(i,p)中的 i,p的值传递给了fath 和celsius 。
3.这叫做传递参数,所以fath等于main中的temp(i,p)中的i,同理 celsius 等于p。
4.你在函数自创的temp()中直接使用变量fath和celsius就可以了;并不用在定义i,p
5.变量的作用域为两个大括号之间:所以main中i,p并不与temp中的I,P有关联,所以需要3.中的传递参数.
6.因为5. 所以temp()中的ip没有赋值,是内存中未知数字得到不正确的数字
7.一开始temp括号中的内容应该与最下面temp中的内容相同
8.打好基础 wyybwdq 发表于 2020-1-19 20:48
1.你的在temp(int fath,float celsius )中并没有使用 fath, celsius。
2.主函数中的temp(i,p)中的 i ...
谢谢大佬纯小白,刚开始学习,再看c程序设计,一脸懵逼 可以可以
页:
[1]