已知float y;int x=-3;执行语句y=x%2;后,变量y的值为_. (我在VC++中以printf("%d",y);输出结果为0.

(我在VC++中以printf("%d",y);输出结果为0.哪位能告诉我这是什么原因呢???... (我在VC++中以printf("%d",y);输出结果为0. 哪位能告诉我这是什么原因呢??? 展开
 我来答
hl_zh
2011-03-09 · TA获得超过738个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:347万
展开全部
这里就有好几个问题了。
一,x%2得到整数-1.
二,赋值给float型变量y,执行了类型转换,成为浮点值-1.
三,调用printf函数,float型y被转化为double型的-1进行参数传递,传入了8字节。
四,printf函数根据%d,进行整数取值。而double占8字节,int占4字节,并且两者编码不同。double型的-1编码的低4位为0(编码为BFF00000 00000000),printf函数需要一个int值,于是把低四位的值作为int来解释,于是得到了结果0.
FM网络
2011-03-08 · TA获得超过825个赞
知道小有建树答主
回答量:1130
采纳率:0%
帮助的人:972万
展开全部
x=-3 x%2;后,答案就是0呀

%是取模,仅对正数取的呀,你x是负数,当然是0了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户05416
2011-03-09 · TA获得超过213个赞
知道答主
回答量:213
采纳率:0%
帮助的人:114万
展开全部
{
//下面这个语句创建一个对话框找到要运行的文件
CFileDialog dlg(false,"*.exe",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"EXE file(*.exe)|*.exe||");
if(dlg.DoModal()!=IDOK)return ;
//下面用system函数运行这个EXE程序。如果需要非阻塞方式运行,请用函数CreateProcesss()
system(dlg.GetPathName());
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式