| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 492 人关注过本帖
标题:请高手指点2个问题
只看楼主 加入收藏
ling62324777
Rank: 1
等 级:新手上路
帖 子:20
专家分:4
注 册:2011-9-6
结帖率:87.5%
收藏
已结贴  问题点数:18 回复次数:7 
请高手指点2个问题
int x;
printf("%d"(x=4*5,x*5),x+25);
输出为啥为45???????




main()
{double d;flout f;long l;int i;
i=f=l=d=20/3;
printf("%d%ld%f%f\n",i,l,f,d);
输出的i l f d分别为6 6 6.0 6.0为什么呢????????
搜索更多相关主题的帖子: double 
2011-12-01 15:12
icqw1986
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2011-11-23
收藏
得分:5 
第一个程序应该是:int x;
                  printf("%d %d",(x=4*5,x*5),x+25);输出结果:100,1192


第二个程序应该是:
main()
{   
double d;
float f;
long l;
int i;
i=f=l=d=20/3;
printf("%d %ld %f %f\n",i,l,f,d);
}
2011-12-01 16:09
icqw1986
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2011-11-23
收藏
得分:0 
第一个printf语句应该有两个%d,
第二个程序你得flout错误,应该是float。结果应该是6 6 6.000000 6.000000
2011-12-01 16:24
strivelong87
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:68
专家分:159
注 册:2011-11-24
收藏
得分:5 
这个问题呢,首先是printf函数的控制符和参数一定要对应起来,不能多也不能少啊,不然输出会有错误,所以第一个就应该加一个%d了
printf("%d %d",(x=4*5,x*5),x+25);
第二个时20/3,因为20和3都是int型的,所以下来结果是6,然后强制转换为double型就是6.000000了。如果写成20.0/3 ,那结果可能就是你想要的了6.666667了
2011-12-01 16:34
编程弱者
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:103
注 册:2011-11-17
收藏
得分:5 
#include<stdio.h>

int main(void)
{
    int x;
    printf("%d,%d",(x=4*5,x*5),x+25);
    return(0);
}
我的输出结果是100,45在VC++6.0上运行的





下面这个不太明白
2011-12-01 17:01
编程弱者
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:103
注 册:2011-11-17
收藏
得分:0 
回复 4楼 strivelong87
学习了
2011-12-01 17:02
jfei
Rank: 4
来 自:郑州
等 级:业余侠客
帖 子:92
专家分:268
注 册:2011-8-27
收藏
得分:5 
路过看看

虾米们!!!有意者加QQ 2434202652,2632939128联系我
2011-12-01 17:10
ling62324777
Rank: 1
等 级:新手上路
帖 子:20
专家分:4
注 册:2011-9-6
收藏
得分:0 
三楼的大大为什么f.d的值为6.000 6.000 而不是6.6 6.6啊
2011-12-01 20:07
快速回复:请高手指点2个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038538 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved