我正在做一个C作业项目,我真是不知所措。本质上,我必须使函数称为 make ,它接受3个短整数,并根据输入输出另一个数字。我将给出这个项目的一个例子:
基本上,我让函数majority(101010101010101, 101010101010101, 101010101010101),如果该位中有2个或更多的1,返回1,否则返回0。
到目前为止,我
short majority(short a, short b, short c)
{
return (a | b | c);
}现在,我知道这是不对的,所以我在这里问:我该怎么做?谢谢你的帮助,如果这有点难理解的话,我很抱歉。我可以根据需要编辑。
发布于 2011-03-16 22:29:08
如果我正确地理解了您,您希望在结果整数中设置一个位,当且仅当相应的位是在两个或三个输入整数中设置的。
..。也就是说,如果在第一个数字中设置了该位,在最后两个数字中设置了相应的位,或者在最后两个数字中都设置了相应的位,那么在一个按位表示的表达式中:
result = (a & (b | c)) | (b & c);发布于 2011-03-16 22:24:07
这样做的方法不止一种,但有一种可能是:
short majority(short a, short b, short c)
{
return (a & b) | (b & c) | (c & a);
}由于这是家庭作业,我会让你自己工作,这是如何/为什么,看看你能不能想出一个替代的,也许更好的解决方案。
https://stackoverflow.com/questions/5332543
复制相似问题