谷先生 发表于 2018-7-22 17:47:29

不懂哪错了

#include <stdio.h>
#include <math.h>

void main()
{
      double x, s;

          printf("input number:\n");
          scanf("%If", &x);
          s = sin(x);
          printf("sin of %If is %If\n", x, s);
}
不知道为什么运行程序后不管属什么字符出来的都是sin of If is If      但是这两个If不应该是两个数值么,不知道哪错了

关键是感觉 发表于 2018-7-22 17:51:55

解释一下你代码中的:%If
替换成%lf

TyCk 发表于 2018-7-22 18:38:07

scanf里面的转换符真的是个坑啊,好多都在这个函数出错的。
注意哈,代表double是英文的小写字母 l 和 f,可别看错了。{:10_266:}
另外,不太理解为啥都喜欢用double呢,明明float就可以解决的啊?{:10_257:}

万古一念间 发表于 2018-7-22 21:57:15

TyCk 发表于 2018-7-22 18:38
scanf里面的转换符真的是个坑啊,好多都在这个函数出错的。
注意哈,代表double是英文的小写字母 l 和 f, ...

因为老课本都是double 都不用 float 新手就是跟随抄代码,也不会在意这个问题。

TyCk 发表于 2018-7-22 22:14:45

万古一念间 发表于 2018-7-22 21:57
因为老课本都是double 都不用 float 新手就是跟随抄代码,也不会在意这个问题。

哦,这样啊,我还说呢,碰到好几个问题帖,都是用double,而scanf函数又用错。不过,也还好吧,早点踩坑,早点学会{:10_266:}

谷先生 发表于 2018-7-23 09:19:41

谢谢大家,现在对了
页: [1]
查看完整版本: 不懂哪错了