devil_bruce 发表于 2021-4-26 16:56

C语言温度转换题

本帖最后由 devil_bruce 于 2021-4-26 16:57 编辑

问大佬们一个温度转换题:把华氏温度转换成摄氏温度,自己也尝试写了代码但不清楚哪里出错了{:301_999:},请大佬们解惑{:301_1003:}

huye 发表于 2021-4-26 17:06

不是公式写错了吗?

25535 发表于 2021-4-26 17:09

本帖最后由 25535 于 2021-4-26 17:20 编辑

scanf_s的问题
%4.2f 在输入时不能用格式控制符
----

好家伙刚刚去百度了scanf_s,原来windows独有的;VS只有毕业设计做上位机用过。
还是用我的gcc吧

Luckyu920 发表于 2021-4-26 17:12

scanf_s(),第一个参数有误,直接"%f"即可,即scanf("%f",&i);
另外公式写错了,是 i-32

devil_bruce 发表于 2021-4-26 17:15

Luckyu920 发表于 2021-4-26 17:12
scanf_s(),第一个参数有误,直接"%f"即可,即scanf("%f",&i);
另外公式写错了,是 i-32

好的,感谢大佬解惑{:1_893:}

梨疯 发表于 2021-4-26 17:30

你看,你的Scanf写错了。
在看,你的公式变成-32了。

drophair 发表于 2021-4-26 17:36

朋友你的公式有问题
朋友你的读入也很奇怪
自认为正确的代码

```c
#include<stdio.h>
int main()
{
    double i,j;   //当然你也可以使用float类型的
    scanf("%lf",&i);    //float类型的话读入应该是scanf("%f",&i);
    j=5.0*(i-32.0)/9.0;
    printf("%4.2lf\n",j);   //float类型的输出应该是printf("%4.2f\n",j);
    return 0;
}
```

不二神话 发表于 2021-4-26 17:41

梨疯 发表于 2021-4-26 17:30
你看,你的Scanf写错了。
在看,你的公式变成-32了。

VS为了防止内存泄漏,必须要scanf_s这样写

梨疯 发表于 2021-4-26 17:48

不二神话 发表于 2021-4-26 17:41
VS为了防止内存泄漏,必须要scanf_s这样写

好吧,学的时候我用的是傻瓜式的DEVC++。

drophair 发表于 2021-4-26 17:53

来自一个无情的压行怪写的代码
```c
#include<stdio.h>
main(){float i;scanf("%f",&i);printf("%.2f",5*(i-32)/9);}
```
页: [1]
查看完整版本: C语言温度转换题