Scoundrel丶You 发表于 2016-1-17 19:10:56

小甲鱼你在哪里,求帮忙

<div>#include<stdio.h>

void main()
{
      double F, c;
      printf("输入一个华氏温度:");
      scanf("F=%lf\n", &F);
      c = (F - 32) * 5 / 9;
      printf("摄氏度为:%.2lf\n", c);
}
输入一个华氏度,要求输出摄氏度。公式为
c=5/9 * (F-32)

这个代码可以运行,但是输出结果是错误的,为什么啊。。。。。


黑龍 发表于 2016-1-17 19:25:18

scanf("F=%lf\n", &F); 为什么要有F=%lf\n呢 直接用%lf不行吗

阴影中的曙光 发表于 2016-1-17 19:26:03

scanf("%lf", &F);

ligen超越 发表于 2016-1-18 14:28:07

本帖最后由 ligen超越 于 2016-1-18 14:30 编辑

我菜鸟,不知道了

人造人 发表于 2016-1-18 14:41:18

<div>#include<stdio.h>

void main()
{
      double F, c;
      printf("输入一个华氏温度:");
      scanf("F=%lf\n", &F);
      c = (F - 32) * 5 / 9;// 5 / 9 ??? 应该是 5.0 / 9.0 吧
      printf("摄氏度为:%.2lf\n", c);
}

musilintan 发表于 2016-1-18 14:58:04

调试一下你就懂了。。。

小甲鱼 发表于 2016-1-19 03:51:12

人造人 发表于 2016-1-18 14:41
#include

void main()


这个不影响,因为 F 是 double,所有整个算术表达式都会被强制转换为 double

小甲鱼 发表于 2016-1-19 03:55:09

这道题的问题在于 scanf() 函数的使用。

字符串中除了格式化占位符之外,一般不要有其他字符。

另外,变量名不要用单独的大写字母。

代码修改后如下:

#include <stdio.h>

int main()
{
    double f, c;
   
    printf("输入一个华氏温度:");
    scanf("%lf", &f);
   
    c = (f - 32) * 5 / 9;
    printf("摄氏度为:%.2lf\n", c);

        return 0;
}

Scoundrel丶You 发表于 2016-1-19 07:59:54

小甲鱼 发表于 2016-1-19 03:55
这道题的问题在于 scanf() 函数的使用。

字符串中除了格式化占位符之外,一般不要有其他字符。


谢谢,小甲鱼

Scoundrel丶You 发表于 2016-1-19 08:01:15

黑龍 发表于 2016-1-17 19:25
scanf("F=%lf\n", &F); 为什么要有F=%lf\n呢 直接用%lf不行吗

明白了,谢谢

人造人 发表于 2016-1-19 09:33:18

小甲鱼 发表于 2016-1-19 03:51
这个不影响,因为 F 是 double,所有整个算术表达式都会被强制转换为 double

哦,谢谢

heblhc 发表于 2016-1-19 10:56:24

学习了

黑龍 发表于 2016-1-21 13:08:24

人造人 发表于 2016-1-18 14:41
#include

void main()


这个并没有错

人造人 发表于 2016-1-21 15:38:23

黑龍 发表于 2016-1-21 13:08
这个并没有错

哦,知道了,谢谢

浅唱19913 发表于 2016-1-21 18:01:59

5/9不就等于0了吗?

pikaqiuzi 发表于 2016-1-21 22:35:37

啦啦啦啦啦

mrjzm 发表于 2016-1-22 17:45:06

来观摩下前辈们

水墨山水 发表于 2016-1-23 10:19:18

{:10_277:}
页: [1]
查看完整版本: 小甲鱼你在哪里,求帮忙