注册 登录
编程论坛 C++教室

求解

a99875984 发布于 2012-11-26 22:56, 332 次点击
在c++奋斗乐园获取激活码获取码的时候要读这么一个简单的程序
程序代码:
#include <iostream>
using namespace std;
int main()
{
    int a=5,b=3;
    cout<<(a>b?(a|b):(a^b))<<endl;
    return 0;
}

我认为结果是7,编译出来也是7,但输入错误,我就用7*3/2后在取整10输入,结果真确,请问下这样结果到底该怎么弄,到底是7还是10,难度是编译环境的问题?
9 回复
#2
mmmmmmmmmmmm2012-11-26 23:10
5二进制101  3的二进制11

101|011=111

编译了也是7  求解答
#3
zxd5432012-11-27 00:03
a|b 按位或运算符 5  101
                 3  011
                    111  二进制为7
a^b 按位与运算符 5  101
                 3  011
                    111  二进制为6

(a>b?(a|b):(a^b))
  5>3 输出a|b的值 7         
你描述的没明白         
#4
rjsp2012-11-27 08:48
我就用7*3/2后在取整10输入
------ 为什么你想到 7*3/2 ?
#5
a998759842012-11-27 12:17
回复 3楼 zxd543
输入7,显示的是错误,输入10才提示正确,你可以去C++奋斗乐园里点击注册里的激活码获取试试看
#6
a998759842012-11-27 12:19
回复 4楼 rjsp
我输入7错误了,我就想着7*3/2试试看,结果对了
#7
rjsp2012-11-27 12:23
我将源代码贴出来
程序代码:
#include <iostream>
using namespace std;


int main()
{
    int a = 5,b = 3;
    cout << (a>b?(a|b):(a^b))*3/2 << endl;
}
没见过楼主这么无聊的
#8
mmmmmmmmmmmm2012-11-27 12:45
回复 7楼 rjsp
感谢

o(︶︿︶)o 唉
#9
a998759842012-11-27 18:09
回复 8楼 mmmmmmmmmmmm
这就是一道奇葩的题,谢什么哈,觉得就跟i+++++++++i一样
#10
rjsp2012-11-28 09:13
回复 9楼 a99875984
题目并不奇葩,是你这个人的人品比较奇葩
题目明明有个 *3/2,你却把它删除
自己将7乘3除以2,却不告诉别人*3/2是从哪儿看来的
1