bkuy 发表于 2020-4-20 10:31:19

C计算摄氏温度

本帖最后由 bkuy 于 2020-4-20 11:14 编辑

#include<stdio.h>

int main()
{
    int F;
    int C;

    scanf("%d", &F);
    C = 5 * ( F - 32 ) / 9;
   
    printf("Celsius = %d\n", C);

    return 0;
}



我自己运行的时候,输入150按回车没有反应,再次运行则得出65,请问这是为什么呢?该怎么解决?(这个作业我提交后显示编译错误

bkuy 发表于 2020-4-20 13:24:46

本帖最后由 bkuy 于 2020-4-20 13:30 编辑

{:10_319:}真抱歉,是减号出了问题,解决了,不好意思不好意思,但是我不知道怎么撤销帖子/。。。
我复制到这里的时候也是那个地方变成奇怪的东西去了,然后重新编辑了那部分,所以才没有发现问题。。。。。

抱歉抱歉{:10_278:} 虽然我还是不知道为什么要重新运行才出结果。。

最后感谢大家!

bkuy 发表于 2020-4-20 10:32:50

本帖最后由 bkuy 于 2020-4-20 10:33 编辑

??我刚发现我复制过来的时候,第9行代码错了,应该是 C = 5 * ( F- 32 ) / 9;

qiuyouzhi 发表于 2020-4-20 10:39:42

本帖最后由 qiuyouzhi 于 2020-4-20 10:40 编辑

bkuy 发表于 2020-4-20 10:32
??我刚发现我复制过来的时候,第9行代码错了,应该是 C = 5 * ( F- 32 ) / 9;

你这都出现除法了,还用int存放结果?
改成这样试试:
#include<stdio.h>

int main()
{
    int F;
    float C;

    scanf("%d", &F);
    C = 5 * ( F - 32 ) / 9;
   
    printf("Celsius = %.2f\n", C);

    return 0;
}

liuzhengyuan 发表于 2020-4-20 10:48:57

bkuy 发表于 2020-4-20 10:32
??我刚发现我复制过来的时候,第9行代码错了,应该是 C = 5 * ( F- 32 ) / 9;

出现除法有可能会有小数,所以建议用 double 来定义变量类型

bkuy 发表于 2020-4-20 10:49:02

qiuyouzhi 发表于 2020-4-20 10:39
你这都出现除法了,还用int存放结果?
改成这样试试:

emmm,题目要求保证输入与输出均在整型范围内,
[而且好像如果参与的算子如果都是整数的话,结果也是整数,就直接截断了小数点后的部分,(我在慕课看到翁恺老师的了解的,但是我是小白,所以可能理解不是很透彻)]
我刚刚试了改成double,但是还是没能解决不能直接打印结果,还是需要重新运行 才能打印结果

qiuyouzhi 发表于 2020-4-20 10:50:30

bkuy 发表于 2020-4-20 10:49
emmm,题目要求保证输入与输出均在整型范围内,
[而且好像如果参与的算子如果都是整数的话,结果也是整数 ...

我这里没有出现你的问题,直接输入华氏度就打印结果了
#include<stdio.h>

int main()
{
    int F;
    float C;

    scanf("%d", &F);
    C = 5 * ( F - 32 ) / 9;
   
    printf("Celsius = %d\n", (int)C);

    return 0;
}
把输出改成整型了

bkuy 发表于 2020-4-20 10:55:55

liuzhengyuan 发表于 2020-4-20 10:48
出现除法有可能会有小数,所以建议用 double 来定义变量类型

你好,题目要求输入与输出均为整型

liuzhengyuan 发表于 2020-4-20 10:58:16

bkuy 发表于 2020-4-20 10:55
你好,题目要求输入与输出均为整型

那就在最后输出的时候强制类型转换,把它转成整数

liuzhengyuan 发表于 2020-4-20 11:01:13

bkuy 发表于 2020-4-20 10:55
你好,题目要求输入与输出均为整型

建议输出整数是四舍五入,这样误差会小一点
四舍五入的话你因该会吧

bkuy 发表于 2020-4-20 11:06:27

qiuyouzhi 发表于 2020-4-20 10:50
我这里没有出现你的问题,直接输入华氏度就打印结果了

把输出改成整型了

{:5_99:}我用这个代码以运行了一下,还是需要再次运行才能打印结果;
然后又试了一些别的类似结构的程序,就没这个问题了{:10_324:};
再之后我把你上传的这段代码复制提交之后,还是显示编译错误{:10_315:}

bkuy 发表于 2020-4-20 11:09:50

liuzhengyuan 发表于 2020-4-20 11:01
建议输出整数是四舍五入,这样误差会小一点
四舍五入的话你因该会吧

根据给出的示例,当F=150时,C输出为65,因此是小数点后截断

liuzhengyuan 发表于 2020-4-20 11:11:08

bkuy 发表于 2020-4-20 11:09
根据给出的示例,当F=150时,C输出为65,因此是小数点后截断

那就强制类型转换呗
(int)a

qiuyouzhi 发表于 2020-4-20 11:12:16

bkuy 发表于 2020-4-20 11:06
我用这个代码以运行了一下,还是需要再次运行才能打印结果;
然后又试了一些别的类似结构的程序 ...

我这里Dev-C++没有问题?
可以说下你的编译环境吗

永恒的蓝色梦想 发表于 2020-4-20 11:13:58

bkuy 发表于 2020-4-20 11:06
我用这个代码以运行了一下,还是需要再次运行才能打印结果;
然后又试了一些别的类似结构的程序 ...

网站给出来

bkuy 发表于 2020-4-20 11:18:27

qiuyouzhi 发表于 2020-4-20 11:12
我这里Dev-C++没有问题?
可以说下你的编译环境吗

我是按小甲鱼给的教程搭的,VB,Centos6.1,编辑器vim, 编译器gcc

bkuy 发表于 2020-4-20 11:20:40

本帖最后由 bkuy 于 2020-4-20 11:23 编辑

永恒的蓝色梦想 发表于 2020-4-20 11:13
网站给出来

链接:https://pintia.cn/
邀请码:a583a5615d228c2c
注册之后→ 我的题目集→ 中M2020春C入门练习第I段——变量、表达式、分支、循环 → 7
*注册时需要在另一个浏览器窗口或标签页里登录中国大学MOOC

永恒的蓝色梦想 发表于 2020-4-20 11:26:58

bkuy 发表于 2020-4-20 11:18
我是按小甲鱼给的教程搭的,VB,Centos6.1,编辑器vim, 编译器gcc

输了邀请码,然后就打不开了……这个怎么办

bkuy 发表于 2020-4-20 11:27:23

永恒的蓝色梦想 发表于 2020-4-20 11:13
网站给出来

链接:https://pintia.cn/,
需要先系统注册一个账号,注册时需在另一个浏览器窗口或标签页里登录中国大学MOOC,
在个人中心的“应邀做题”那里输入邀请码:a583a5615d228c2c,
点“进入题库”,在“中M2020春C入门练习第I段——变量、表达式、分支、循环” 7

bkuy 发表于 2020-4-20 11:32:30

永恒的蓝色梦想 发表于 2020-4-20 11:26
输了邀请码,然后就打不开了……这个怎么办

{:10_282:}我不清楚欸...我是不是挖坑了...不好意思

永恒的蓝色梦想 发表于 2020-4-20 11:33:04

你的回复全都被审核了……等会吧
页: [1] 2
查看完整版本: C计算摄氏温度