| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:关于类型转换的问题
只看楼主 加入收藏
阿敏_000
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-1-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
关于类型转换的问题
下面这个的运行结果有点问题。。。各位大神帮我看看
#include<stdio.h>

void main()
{
    int a;
    float b;
   
    a *= a /= (a = 7) - (b = 4.5);
    printf("%d", a);
    printf("%f", b);
}
2012-03-07 13:26
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:2 
(a = 7) - (b = 4.5)这节算的是浮点数 /= 左边的a 是int型的 系统会警告 可能丢失数据

梅尚程荀
马谭杨奚







                                                       
2012-03-07 14:15
真的很菜
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:94
专家分:151
注 册:2012-2-18
收藏
得分:2 
#include <stdio.h>
void main()
{
    int a=7;
    float b=4.5;
    a/=a-b;
    printf("%d\n",a);
    a*=a;
    printf("%d\n",a);
    printf("%d\n",a);
    printf("%f\n",b);
}

你这样把它分开来试试就明白是怎么回事了  ,那  a*=a/=(a=7)-(b=4.5);是从左到右的这应该清楚了
2012-03-07 15:17
yupeisx
Rank: 1
等 级:新手上路
帖 子:20
专家分:8
注 册:2012-3-7
收藏
得分:2 
  您好,不知道对不对。
我认为   a *= a /= (a = 7) - (b = 4.5);
  当程序运行到  a/= 这个等号的时候,这个a是没有值的,所以在这一步会出现乱码。括号内部赋值语句现在还没有执行过来。您可以尝试用指针。
2012-03-07 17:57
chan_
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:84
专家分:122
注 册:2012-2-29
收藏
得分:2 
2012-03-07 18:09
姚杰
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:169
专家分:477
注 册:2010-6-1
收藏
得分:2 
a *= a /= (a = 7) - (b = 4.5);
算出来的结果是 a 等于一个小数。类型定义有问题,你可以定义为float a;
你连续用等号,涉及到一个优先级问题,最好还是分开写等式。。。

持之以恒,别留遗憾,加油
2012-03-08 12:19
zxd675816777
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:252
专家分:631
注 册:2012-2-3
收藏
得分:2 
注意点儿细节就好了

数学好难!
2012-03-08 12:52
阿敏_000
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-1-14
收藏
得分:0 
老师说的结果a = 4;但在vc++6.0上运行后结果是一个负数
2012-03-09 16:01
快速回复:关于类型转换的问题
数据加载中...
 
   



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

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