user-0 提问: 一到数据结构的题，不允许使用比较，删除重复元素

回复:
user: user-0
content: 引用 9 楼 zhao4zhong1 的回复:谁说实数无法异或来着？ #include <stdio.h> #define SWAP(a,b) do ((&(a))!=(&(b)))?((a)^=(b)^=(a)^=(b)):((a)=(a)); while (0) char   *p1="1" ,*p2="2" ; char    c1=1   , c2=2   ; short   s1=1   , s2=2   ; int     i1=1   , i2=2   ; __int64 I1=1i64, I2=2i64; float   f1=1.0f, f2=2.0f; double  d1=1.0 , d2=2.0 ; void main() {     SWAP((int)p1,(int)p2);                printf("char *     %5s,   %5s\n",p1,p2);     SWAP(c1,c2);                          printf("char       %5d,   %5d\n",c1,c2);     SWAP(s1,s2);                          printf("short      %5d,   %5d\n",s1,s2);     SWAP(i1,i2);                          printf("int        %5d,   %5d\n",i1,i2);     SWAP(I1,I2);                          printf("__int64 %5I64d,%5I64d\n",I1,I2);     SWAP(*(int     *)&f1,*(int     *)&f2);printf("float      %5g,   %5g\n",f1,f2);     SWAP(*(__int64 *)&d1,*(__int64 *)&d2);printf("double    %5lg,  %5lg\n",d1,d2);      SWAP(c1,c1);     printf("%d\n",c1); } //char *         2,       1 //char           2,       1 //short          2,       1 //int            2,       1 //__int64     2,    1 //float          2,       1 //double        2,      1 //2   赵老师厉害，我刚学的异或老师说不能对实数比较，看来还是要自己操作下才知道，马克了

user: user-0
content: 引用 8 楼 zxh707wk 的回复:http://bbs.sjtu.edu.cn/bbstcon?board=C&reid=1394963935  原来过一遍hash不算比较，这题太坑了

user: user-1
content: 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址； 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……

user: user-0
content: 引用 6 楼 zxh707wk 的回复:[quote=引用 4 楼 Philipyexushen 的回复:] [quote=引用 2 楼 zxh707wk 的回复:] 数组存值？   能否具体点?不是很懂[/quote]实数不行，用链表试试？[/quote]  引用 6 楼 zxh707wk 的回复:[quote=引用 4 楼 Philipyexushen 的回复:] [quote=引用 2 楼 zxh707wk 的回复:] 数组存值？   能否具体点?不是很懂[/quote]实数不行，用链表试试？[/quote]  可是还是存在比较吧

user: user-2
content: 引用 4 楼 Philipyexushen 的回复:[quote=引用 2 楼 zxh707wk 的回复:] 数组存值？   能否具体点?不是很懂[/quote]实数不行，用链表试试？

user: user-3
content: 类型为实数，显然浮点数没办法使用位运算来判断的

user: user-1
content: 谁说实数无法异或来着？ #include <stdio.h> #define SWAP(a,b) do ((&(a))!=(&(b)))?((a)^=(b)^=(a)^=(b)):((a)=(a)); while (0) char   *p1="1" ,*p2="2" ; char    c1=1   , c2=2   ; short   s1=1   , s2=2   ; int     i1=1   , i2=2   ; __int64 I1=1i64, I2=2i64; float   f1=1.0f, f2=2.0f; double  d1=1.0 , d2=2.0 ; void main() {     SWAP((int)p1,(int)p2);                printf("char *     %5s,   %5s\n",p1,p2);     SWAP(c1,c2);                          printf("char       %5d,   %5d\n",c1,c2);     SWAP(s1,s2);                          printf("short      %5d,   %5d\n",s1,s2);     SWAP(i1,i2);                          printf("int        %5d,   %5d\n",i1,i2);     SWAP(I1,I2);                          printf("__int64 %5I64d,%5I64d\n",I1,I2);     SWAP(*(int     *)&f1,*(int     *)&f2);printf("float      %5g,   %5g\n",f1,f2);     SWAP(*(__int64 *)&d1,*(__int64 *)&d2);printf("double    %5lg,  %5lg\n",d1,d2);      SWAP(c1,c1);     printf("%d\n",c1); } //char *         2,       1 //char           2,       1 //short          2,       1 //int            2,       1 //__int64     2,    1 //float          2,       1 //double        2,      1 //2

user: user-2
content: http://bbs.sjtu.edu.cn/bbstcon?board=C&reid=1394963935

user: user-0
content: 引用 2 楼 zxh707wk 的回复:数组存值？   能否具体点?不是很懂

user: user-0
content: 引用 1 楼 u014609356 的回复:使用位运算异或  我也想过这个。。。可是这个算不算比较啊

user: user-2
content: 数组存值？

user: user-4
content: 使用位运算异或