标题:
关于 4.5节《赋值》,示例4-6 引发的问题
[打印本页]
作者:
moorwindmill
时间:
2010-7-8 12:02
标题:
关于 4.5节《赋值》,示例4-6 引发的问题
本人对原来的代码作了一点点增加:
#include "stdafx.h"
#include <iostream.h>
int main(void)
{
int x=0;
int y=0;
cin>>x;
cin>>y;
cout<<"x+y="<<(x+=y)<<endl;
cout<<"x-y="<<(x-=y)<<endl;
cout<<"x*y="<<(x*=y)<<endl;
cout<<"x/y="<<(x/=y)<<endl;
cout<<"x%y="<<(x%=y)<<endl;
cout<<"x<<y="<<(x<<=y)<<endl;
cout<<"x>>y="<<(x>>=y)<<endl;
cout<<"x^y="<<(x^=y)<<endl;
cout<<"x=y="<<(x=y=100)<<endl;
return 0;
}
本人输入 8 和 4,得出的结果非常奇怪,为:
8
4
x+y=12
x-y=8
x*y=32
x/y=8
x%y=0
x<<y=0
x>>y=0
x^y=4
x=y=100
请问为什么跟期望值不一样呢?
作者:
fwbook
时间:
2010-7-8 13:18
我看了程序,没有觉得不正常地方。我根据程序简单的说一下。
cin>>x; x=8
cin>>y; y=4
cout<<"x+y="<<(x+=y)<<endl; x=x+y=8+4=12
cout<<"x-y="<<(x-=y)<<endl; x=x-y=12-4=8
cout<<"x*y="<<(x*=y)<<endl; x=x*y=8*4=32
cout<<"x/y="<<(x/=y)<<endl; x=x/y=32/4=8
cout<<"x%y="<<(x%=y)<<endl; x=x%y=8%4=0
cout<<"x<<y="<<(x<<=y)<<endl; x=x<<y=0<<4=0
cout<<"x>>y="<<(x>>=y)<<endl; x=x>>y=0>>4=0
cout<<"x^y="<<(x^=y)<<endl; x=x^y=0^4=4
cout<<"x=y="<<(x=y=100)<<endl; x=y=100
如果你对其中那一个部分不清楚,你提出来。我具体给你说一下。
作者:
moorwindmill
时间:
2010-7-8 20:51
2#
fwbook
谢谢解答!现在明白了!是我自己理解错误。我没留意x会保留前值。
作者:
fwbook
时间:
2010-7-8 22:28
3#
moorwindmill
哦。以后有问题,可以直接在论坛中提出。
欢迎光临 万卷图书 (http://wanjuanchina.net/)
Powered by Discuz! 7.0.0