kyq156518 发表于 2013-12-21 13:41:51

damingdingdin 发表于 2013-12-21 16:39:31

激动人心,无法言表!

吴庆龙 发表于 2013-12-22 09:51:17

强烈支持楼主ing……

月痕冰心 发表于 2013-12-25 20:51:25

楼主加油,鱼C加油!我们都看好你哦!

不玩cf 发表于 2013-12-26 19:10:30

淡定,淡定,淡定……

qwer772 发表于 2013-12-26 20:55:37

强烈支持楼主ing……

369575409 发表于 2013-12-27 12:29:09

强烈支持楼主ing……

L。 发表于 2013-12-31 17:38:08

强烈支持楼主ing……

ADFDRD 发表于 2014-1-8 16:34:21

感恩无私的分享与奉献 :)

LC2790 发表于 2014-1-9 09:43:06

强烈支持楼主ing……

我疯狂我成功 发表于 2014-1-9 12:18:09

有点儿意思,嘻嘻

leiao1989613 发表于 2014-1-9 17:19:56

楼主加油,鱼C加油!我们都看好你哦!

卿枫~凌 发表于 2014-1-12 09:46:00

看看这个神贴

妞請釋放微笑 发表于 2014-1-12 16:49:26

强烈支持楼主ing……

无念道长 发表于 2014-1-16 10:03:40

解:
    1.异或操作时将相同的位置零,相异的位置1,举例:A=00001010B,B=00000101B,A = A ^ B,此时,A=00001111B,B=00000101B,第二句B = A ^ B,A = 00001111B,而此时B=00001010B,第三句,A = A ^ B,A被赋值新值,00000101B,B的值没变,实现了不用中间变量进行对调,可以用数学归纳法证明,对于所有的二进制数,上述操作均可实现该功能。另外,小提示:要对数进行操作,要用地址传递,如果直接对数进行运算,不改变原先的数据不要传递指针数据。
    2.牵扯到异或操作。原理如1开头的那句话,对于奇数个数据,中间一个必然是将自己跟自己进行异或,并赋值给自己,比如:C = 00100101B,相异的取1,相同取0,C^C,每一位一定相同,那么结果必然是0,而传递时传递给异或双方中的一个变量,现在两个变量都是它自己,自然置自己为0,而继续异或操作,还是对自己00000000B,进行操作,所以结果必然是0。
    3.我比较笨,只能想到最基本方法解决,修改reverse_array如下:
void reverse_array(int a[], int count)
{
      int first, last;
      
      for( first=0, last=count-1; first <= last; first++, last-- )
      {
               if(first != last)
               {
                        inplace_swap(&a, &a);
                }
      }
}
请小甲鱼老师和各位鱼友指正。

64894068@qq.com 发表于 2014-2-2 11:39:57

1.二进制的相关运算
2.for循环中的等号
3.去除for循环中的等号

scorridor 发表于 2014-2-4 11:53:11

学习中,貌似挺深奥啊

hate茶叶蛋 发表于 2014-2-6 02:09:04

激动人心,无法言表!

泓荥 发表于 2014-2-9 16:11:36

......               

刘伯温· 发表于 2014-2-12 16:32:42

激动人心,无法言表!
页: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17
查看完整版本: 一道有意思的C语言试题