鱼C论坛

 找回密码
 立即注册
查看: 1459|回复: 6

[已解决]重新编写温度转换程序,使用函数实现温度计算

[复制链接]
发表于 2020-1-19 04:33:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>

  2. float temp(int m, float n);

  3. /*test temp function */
  4. main()
  5. {
  6.         int i;
  7.         float p;
  8.         for (i = 0; i <= 200; i = i + 20)
  9.                 printf("%d\t %6.1f\n", i, temp(i, p));

  10.         return 0;
  11. }

  12. float temp(int fath, float celsius)

  13. {
  14.         int i;
  15.         float p;

  16.         p = 5.0 * (i - 32.0) / 9.0;

  17.         return p;
  18. }
复制代码


请问大佬这个哪有问题么
运行结果
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
最佳答案
2020-1-19 20:48:56
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.打好基础
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-19 11:17:43 | 显示全部楼层

回帖奖励 +5 鱼币

函数写错了,形参都没参与运算。。。。。。。(你看下是否想要这样的效果)
  1. #include<stdio.h>
  2. float change(int fahrenheit);
  3. int main()
  4. {
  5.         int i;
  6.         for(i=0;i<=200;i+=20)
  7.                 printf("%-6d%5.2f\n",i,change(i));//注意得到的结果是摄氏度
  8.         return 0;
  9. }
  10. float change(int fahrenheit)//摄氏温度(C)与华氏温度(F)的换算式是:C = 5×(F- 32)/9
  11. {
  12.         float celsius;
  13.         celsius=5.0*(fahrenheit-32)/9;
  14.         return celsius;
  15. }
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
WwangHB + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-19 18:19:40 | 显示全部楼层
sanguine_boy 发表于 2020-1-19 11:17
函数写错了,形参都没参与运算。。。。。。。(你看下是否想要这样的效果)

请问大佬怎么看形参有没有参与运算,为什么我那个形参没有参与运算呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-19 19:57:05 | 显示全部楼层
WwangHB 发表于 2020-1-19 18:19
请问大佬怎么看形参有没有参与运算,为什么我那个形参没有参与运算呢?

float temp(int fath, float celsius)你定义的这个函数的函数体里面都没用上形参fath和celsius,说明函数的形参没有意义,只是个摆设,我的理解是这样子

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
WwangHB + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-19 20:48:56 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +5 鱼币

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.打好基础

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
WwangHB + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-26 04:25:13 | 显示全部楼层
wyybwdq 发表于 2020-1-19 20:48
1.你的在temp(int fath,float celsius )中并没有使用 fath, celsius  。
2.主函数中的temp(i,p)中的 i ...

谢谢大佬纯小白,刚开始学习,再看c程序设计,一脸懵逼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-30 16:18:54 | 显示全部楼层

回帖奖励 +5 鱼币

可以可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 13:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表