搜索
查看: 996|回复: 8
打印 上一主题 下一主题

请问我这个有什么问题呢···

[复制链接]
跳转到指定楼层
楼主
发表于 2013-12-6 13:14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
int main ()
{
    int a,b,c,d,e;
    a=1.2;
    b=2.3;
    c=3.4;
    d=4.5;
    e=a+b+c+d
        printf("%d",e)
        sleep(10000);
    return o;


沙发
发表于 2013-12-6 13:44:23 | 只看该作者

  1. #include <stdio.h>
  2. #include <windows.h>

  3. int main()
  4. {
  5.   double a, b, c, d, e;
  6.   a = 1.2;
  7.   b = 2.3;
  8.   c = 3.4;
  9.   d = 4.5;
  10.   e = a+b+c+d;
  11.   printf("%f", e);
  12.   Sleep(10000);
  13.   return 0;
  14. }
复制代码
错误就自己对着找吧
板凳
发表于 2013-12-6 21:30:19 | 只看该作者
rosynirvana 发表于 2013-12-6 13:44
错误就自己对着找吧

好快呀                        
地板
发表于 2013-12-6 21:38:25 | 只看该作者
rosynirvana 发表于 2013-12-6 13:44
错误就自己对着找吧

double怎么是用%f,不应该用%lf么
5#
发表于 2013-12-6 22:33:42 | 只看该作者
cad20020601 发表于 2013-12-6 21:38
double怎么是用%f,不应该用%lf么

double是%f
float没有占位符,要隐式转换到double然后输出
6#
发表于 2013-12-6 22:42:52 | 只看该作者
rosynirvana 发表于 2013-12-6 22:33
double是%f
float没有占位符,要隐式转换到double然后输出

哦,懂了~~
7#
发表于 2013-12-7 10:00:28 | 只看该作者
cad20020601 发表于 2013-12-6 22:42
哦,懂了~~

哦等等,那既然double的占位符是%f,那么以前的%lf是怎么回事。。。
8#
发表于 2013-12-7 11:35:14 | 只看该作者
cad20020601 发表于 2013-12-7 10:00
哦等等,那既然double的占位符是%f,那么以前的%lf是怎么回事。。。

printf没有%lf这个占位符,有疑问可以自己查ISO C文本
或许你会说编译器为什么不报错,因为编译器不是什么问题都会报错的
9#
发表于 2013-12-7 20:36:30 | 只看该作者
因为你的那几个a=1.2;b=2.3;c=3.4;d=4.5;所赋值的是小数,int应改为double
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表