打印

送10分,求最佳算法。

[复制链接]
楼主: 刘前辈
手机看帖
扫描二维码
随时随地手机跟帖
121
怎么俺又被代表啦?

俺不知道刘老前辈为什么厌恶所长,但俺声明,俺看过所长写的一些**,很有见解,尽管有些和国外的经典之作有类同,但仍有不少新意。说实话,俺如果搞技术,跟着所长专业学,估计得花两年时间,才差不多达到这一层次。

二姨家的大蚂蚁电源方面非常牛B,俺如果搞技术,跟着大蚂蚁专业学,估计用不了一年时间,就能和大蚂蚁平起平坐。

为什么学大蚂蚁只要一年时间,就能平起平坐。而学所长要花两年时间,并且难于超越?其原因在于所长的知识面更广,您说highgear老师是所长的徒弟,highgear老师的知识俺更难超越,估计得跟在highgear老师后面专业学三年,才能基本合格。

如跟在前辈您后面,估计前三个月俺恶补C语言,后三个月每天听几遍那几句“多乎哉不多也”,再后来俺也不知道。。。。





一声叹息:

二十年前俺目空一切,总是拿自己的长处去和别人PK,偶然赢不了也要死打烂缠,一定要将对方比下去。

二十年后的俺,总是拿自己的短处去和别人PK,尽管每次都输,但努力缩短和高手之间的差别。

结论:像小OO所说,一切都是浮云。

使用特权

评论回复
122
刘前辈|  楼主 | 2011-5-8 17:54 | 只看该作者
本帖最后由 刘前辈 于 2011-5-8 19:09 编辑

唉,一声叹息。所长的逻辑……
至于 memcpy,显然刘公没有用过其他的 cpu. memcpy 对于51这种 cpu 结构来说,不会比用for loop 之类更快更省,特别是对于external ram. 换句话说, memcpy 不是为 51 准备的,甚至可以说,数据结构之类的不是为 51 准备的。因此,刘公在51得出结论,可以说是错误的。大多数中高端 cpu,都具备 dma或者block move/copy, 使得 memcpy 远比用 c 下的for loop 高效快速。


所长又忘了,无论你到什么CPU上,俺结构整体拷贝都和你memcpy( )一样快!告诉你了,编译器对它们俩的处理方式是一样的!也许所长真的是老了:再说一遍:
以前有人证明过了,两者编译出来的代码(机器码)完全一样。当时就让你语塞了。怎么到了现在所长又好像换了CPU:
只有你的memecpy( )可以更快了。
别人的结构拷贝就更慢了?你可以有DMA,我在32位CPU上就是老牛破车?——这什么逻辑?

     中国农民就这秉性?输了还要辩解,

     你如今到32位cpu上去玩你的memcpy( ),却让别人在8位cpu上玩结构整体拷贝?
    然后所长得意地说:“我比你快多了吧。”
     哈哈……

所长又显得比书上还高明了,振振有词,摇头晃脑,这么高水平讲习所怎么散了?给你抄一段《C 和指针》上的名言:(谁都知道《C 和指针》这本书的权威分量。)
     如果所长到了今天还**说:“咱从不看书,照样天下第一……”劝您最好先看看心理科医生,然后回家自我欣赏,自己给自己讲课,你影响不了谁,你也不可能再影响谁。昨日黄花,年龄不饶人啊。
     正像icecut说的一句话:大意是,如今的年轻人即使初学者也可以利用更好的cpu和更好的工具编写出很好的程序。
      所以,结构整体拷贝不过是利用了编译器工具,memcpy( )的另一种变体形式应用,根本无所谓封装,ANSI C 标准而已,所长老爷子不知道而已,时代早就以你不可想象的速度发展了,我们同学都笑话你,所以,老爷子应该有自知之明。
      《C 和指针》关于结构拷贝论述如下:
……




、、

使用特权

评论回复
123
刘前辈|  楼主 | 2011-5-8 18:43 | 只看该作者
本帖最后由 刘前辈 于 2011-5-8 18:59 编辑
111楼所长
   ……甚至可以说,数据结构之类的不是为 51 准备的。因此,刘公在51得出结论,可以说是错误的。……


所长太寡闻了,还喜欢卖弄,装作什么都知道。

所长最好先看看RTX51_FULL源代码,看看Intel怎样在51上玩数据结构,怎么玩线性表,线性链表,怎么玩栈和队列;看看Intel怎么在51上写RTOS,怎么写调度器、分发器、消息队列、邮箱。
     所长别自己不知道怎么玩,就以为所有人都不知道玩,鸵鸟把头埋在沙子里,自己就是世界了。
   
    我知道所长下面要说什么:“Intel  RTX51_full 那也叫RTOS?也叫数据结构?……小儿科嘛。”
  
    所以我劝劝你这种人,你一生都没写出个小儿科的东西!你还不如别人小儿科呢……

    想当初殷文跃(值得我敬佩的人)写了个mini51_RTOS,所长要出来表态啦:“你写的很好……”  哈哈。首长发言啦?你所长有什么资格居高临下评论殷文跃?你玩了一辈子软件,也在51上玩出一个RTOS来看看?
    当初陈明计中国第一个写出51—RTOS,所长晚上睡不着觉了:“51上玩什么RTOS,数据结构又不是为51准备的……”真是废话,数据结构是为那个CPU准备的?瞪着眼睛说胡话。

    Jean 说,他的uC/OS 可以移植到像51这类8位机上,国外/国内早就有人完成了这项移植工作,谁敢说Jean 的uC/OS 不是玩的数据结构?


再想前些日子,所长把 5个哲学家就餐这类OS世界经典问题写成了喂5头猪的裸奔程序,忍俊不禁。经指出后,又慌忙掩盖:“我早就知道……”呵呵,欲盖弥彰呀。
        怎么还有脸在这卖弄?


//






、、

使用特权

评论回复
124
刘前辈|  楼主 | 2011-5-8 20:09 | 只看该作者
114楼 123jj
一声叹息:
二十年前俺目空一切,总是拿自己的长处去和别人PK,偶然赢不了也要死打烂缠,一定要将对方比下去。
二十年后的俺,总是拿自己的短处去和别人PK,尽管每次都输,但努力缩短和高手之间的差别。

结论:像小OO所说,一切都是浮云。


二十年?那岂不是说123jj 今年已步入中年了?难怪那么不满意LZ,大概不满意年轻人那么张扬,应该像你们长辈虚心学习是吧。——中国几千年来都是这样,师从,年龄小的不许超过年龄大的,否则年龄大的岂不是白活那么大了?有一种失败感,于是辈分大的总是企图压制年龄小的:“不许冒尖,否则—杀。”
    我在单位,总有朋友告诉我:他们老同志都说你刘XX“太狂”,我回了一句:“他们这辈子想狂还狂不起来呢。”

所以我说,年长的一辈要让年轻人尊重,首先要尊重年轻一辈;别明明看着所长把哲学家喂成猪了,还说所长有新意。
    格言杂志:“何谓第一产业?养猪;第二产业,杀猪;第三产业,吃猪肉。那么文化产业呢?出洋相,吹牛皮。”
    我觉得所长从事的是文化产业;水平是有的,就是总想自己冒尖,结果总出洋相,“这个问题很简单啦,……”结果把哲学家喂成了猪。还告诉别人:“forks是叉子的意思,不是筷子,连这都不懂……”结果还是所长高明。
     呵呵,显得比邹恒明还要洋博士,——别人在美国留了18年学,回到中国讲操作系统课,却需要中国的讲习所长提醒“老师你的英文太差了,forks是叉子,不是筷子。”全系学生听了一片哄笑,这哪来一个农民学生?特别喜欢装懂出洋相。

还问个现实问题:123jj的小车站起来没有?所长能帮你什么忙了没有?

123jj 以前说过一句话,说者无意,听者有心。“刘前辈软件虽然厉害,硬件水平空白……”说完这话是不是自己很安慰?那就安慰吧。

   送你一张图,做机器人很有启发,应该是分布式OS硬件平台。——这下又该有人说“刘前辈硬件虽然厉害,软件不如俺啦……”
   哈哈,纯属“卖弄”一下自己的硬件水平。别自己想卖弄还没东西可卖弄,结果对刘前辈横竖不是眼儿了。——所长恐怕这下要学一辈子了。
    所以,有些事,谁都能做,有些事,只有一个人能做。年长没有用的。


、、

使用特权

评论回复
125
mohanwei| | 2011-5-8 20:47 | 只看该作者
本帖最后由 mohanwei 于 2011-5-9 15:56 编辑

通用算法不是这样搞的,好歹得有一大堆sizeof()才行……
#include <reg51.h>
#include <string.h>

#ifndef bool
        #define bool bit
#endif

#ifndef item
        #define item unsigned char        //根据实际应用,调整item的类型定义,满足长度方面的需求
#endif

bool NotEmpty(unsigned char *p,item size)//检测到非空元素
{
        while(size--)
        {
                if(*p)
                        return(1);
                p++;//昨晚的代码漏掉了这一行
        }
        return(0);
}
item DelZero(void *p,item size,item num)//删除空元素,后面的元素整体前移
{
        void *pOld = p;
        item left=0;
        while(num--)
        {
                if(NotEmpty(pOld,size))//检测到非空元素
                {
                        if(pOld != p)
                        {
                                memcpy(p,pOld,size);
                                
                        }
                        p += size;
                        left ++;
                }
                pOld += size;
        }
        return(left);
}
void main(void)
{
        item left;
        typedef struct
        {
                unsigned char a[5];
        }xxxStruct;
        xxxStruct test_a[] =
        {
                {1,2,3},
                {4,5,6},
                {0,0,0,0},
                {7,8,9,1},
                {1,3,5},
                {2,4,6},
                {3,5,7}
        };
/*
        以上结构体、元素个数可以随便定义,只要不超过item能表达的范围就可以了……其他代码可以不用更改任何一个字符
        通用——意味着算法必须靠sizeof来获取待调整表的元素大小、元素个数等参数。但sizeof不会引入任何额外开销。例如编译后,
        sizeof(xxxStruct)在目前程序里就会被常数5代替。sizeof(test_a)/sizeof(xxxStruct)则被7代替(表示前面定义了7个元素)
        要想通用,正道是让编译器去做优化工作,而不是自己去钻所谓的牛角尖,钻牛角尖的结果就是换一个平台就要重新钻一次。
        
        
*/
        //通用算法:
        left = DelZero(test_a,sizeof(xxxStruct),sizeof(test_a)/sizeof(xxxStruct));//执行后,left即为处理后的元素个数。其他程序根据left把test_a从头打印即可
        /*        例如:
        for(i=0;i<left;i++)
        {
                printf_xxxStruct(test_a);
        }
        */
        while(1)
                ;
}

//Keil C51 默认8级优化:Program Size: data=54.0 xdata=0 code=482
//这个没什么代表意义,因为还掺杂了51的初始化文件,数组结构长度,元素个数
//要比长度应该定义几十种,包罗万象的结构体,然后都调用“DelZero()”函数,统计其平均性能、兼容性

昨晚的代码漏掉了上面红色的一行,这是一个严重的BUG,导致空元素检测函数只检测了元素的开头一个字节

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
aihe + 1
shizaigaole + 1
126
icecut| | 2011-5-8 21:01 | 只看该作者
呵呵.现在很装13,等10年后才知道是很s13
119楼教训的对.

不过对于这种人.你写出最好的来他也不认为好....

还是给他留点装13的空间吧

使用特权

评论回复
127
mohanwei| | 2011-5-8 21:01 | 只看该作者
当然想真的全通用也是不可能的,不管什么库,打开源码一看,好像也是挺多unsigned long的,现在看着够用,上了64位、128位操作系统,一样的不够看
比尔盖兹都曾经满足的说,DOS的640K内存在手,天下我有……

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
shizaigaole + 1
128
icecut| | 2011-5-8 21:04 | 只看该作者
item DelZero(void *p,item size,item num)//删除空元素,后面的元素整体前移
==============
老大你看明白了,这哥们的题就是个错题.我早就提出来了.
你就不用理他.

人家说我要移动3个儿不是四个...............

使用特权

评论回复
129
刘前辈|  楼主 | 2011-5-8 21:06 | 只看该作者
本帖最后由 刘前辈 于 2011-5-8 21:18 编辑
114楼 ……但俺声明,俺看过所长写的一些**,很有见解,尽管有些和国外的经典之作有类同,但仍有不少新意。说实话,俺如果搞技术,跟着所长专业学,估计得花两年时间,才差不多达到这一层次。 二姨家的大蚂蚁电源方面非常牛B,俺如果搞技术,跟着大蚂蚁专业学,估计用不了一年时间,就能和大蚂蚁平起平坐。 为什么学大蚂蚁只要一年时间,就能平起平坐。而学所长要花两年时间,并且难于超越?其原因在于所长的知识面更广,


123jj 说自己2年就能达到所长的层次?——文化产业可以搞,但还得考虑所长的情绪耶。
        ——所长听了可不高兴了。所长16岁上大学,当年的神童少年,大学毕业后又学习长进了30年,让姐姐巾帼英雄2年就达到了!?让咱男性太没面子了! 既生瑜何生亮,我们都自杀得了。
      自己私下可以说说,公开场合还是要照顾当事人的感受和情绪。

123jj 那么容易就让出10分?稍微改一下,第一做的更完美。让刘前辈无话可说,乖乖付出10分!女的还真比男的厉害,可惜所长没看出来,——俺送给123jj完善第一名的,不臭不长。






照这样下去,咱刘前辈可没什么菜可偷了,123jj 要不了一个月就超越刘前辈的层次啦。和所长层次差了20倍。——难怪所长光说不练,一个算法也不写;高深莫测,只会玩第二产业和文化产业,喂猪……。否则2个月就被人超越了。

、、

使用特权

评论回复
130
highgear| | 2011-5-8 22:48 | 只看该作者
本帖最后由 highgear 于 2011-5-8 22:51 编辑

谢谢 123姐姐的吹捧, 其实我水平很一般, 不过比 刘工(冷漠) 高一些而已。

刘公公又把东厂手段使出来了, 可惜我不是所长。

回到技术问题, 我说过, 结构copy 在 c/c++ 里归根到底是 memcpy, 由于8051既没有 dma, 也没有特别的 block move 指令, 所以 memcpy 在 c51里的效率不高。更加上编译器没有智能到可以根据结构的大小进行优化的地步, 所以 struct copy 在 c51 中的效率极低。来看看代码:

typedef struct SA
{
   char x;
} A;

void main (void) {
    A a1, a2;
   a1 = a2;
   printf("%d", a1.x);
   return;
}



而 a1 = a2 的keil 汇编代码
    14:         a1 = a2;
C:0x0D07    7808     MOV      R0,#0x08
C:0x0D09    7C00     MOV      R4,#0x00
C:0x0D0B    7D00     MOV      R5,#0x00
C:0x0D0D    7B00     MOV      R3,#0x00
C:0x0D0F    7A00     MOV      R2,#0x00
C:0x0D11    7909     MOV      R1,#0x09
C:0x0D13    7E00     MOV      R6,#0x00
C:0x0D15    7F01     MOV      R7,#0x01
C:0x0D17    120C2C   LCALL  
  C?COPY(C:0C2C)
可以看出, 即使结构 A 只有一个byte, a1 = a2 仍然调用 C?COPY 来复制。 现在 来看看 memcpy 的 汇编代码:

    15:         memcpy(&a1, &a2, sizeof(A));
C:0x0CF3    7808     MOV      R0,#0x08
C:0x0CF5    7C00     MOV      R4,#0x00
C:0x0CF7    7D00     MOV      R5,#0x00
C:0x0CF9    7B00     MOV      R3,#0x00
C:0x0CFB    7A00     MOV      R2,#0x00
C:0x0CFD    7909     MOV      R1,#0x09
C:0x0CFF    7E00     MOV      R6,#0x00
C:0x0D01    7F01     MOV      R7,#0x01
C:0x0D03    120C2C   LCALL    C?COPY(C:0C2C)


就是说 a1 = a2 确实就是 memcpy.

因此, a1 = a2 这种方式的效率比不上程序员特制的复制程序,例如 123姐姐的复制代码, 仅仅在大尺寸struct 方面有优势, 而大尺寸 struct copy 是应该避免的, 应用指针操纵来代替。
同时, 结构复制
while(i<5)
{
STRUC_a [ i ] = STRUC_a[ i+1];


也比不过
memcpy(&STRUC_a [ 2] , &STRUC_a [ 3 ] , sizeof(STRUC_a)*3)
的效率高。


使用特权

评论回复
131
mohanwei| | 2011-5-8 23:13 | 只看该作者
崩溃……看来我还是太肤浅了……

曾经改过一个程序,里面很多很多disp_uchar(),disp_uint(),disp_ulong(),diap_float(),disp_3uint(),disp_uchar_uint()……这样的函数,改一改,全换成printf(),居然RAM和Flash用量都小了

也许你知道这个数组有几个元素,每个元素有多长,第几个是0……“一行代码”就搞定了。但既然知道,为啥不能直接定义一个没有0的数组,干脆一行代码都不用……
如果不知道,不管在哪里,总得有检测数组长度、哪个是0的代码……东一榔头西一榔头来“深度优化”,代码复杂,毫无任何移植性,总体开销更大……即使在ucos,linux的内核里也看不到这种“深度优化”
不如使用通用的代码,这也是库的存在理由
自定义库函数,我只在一些bootloader里看到,那只是为了减少库的依赖,也是为了直接源码化,利于调试查错

使用特权

评论回复
评分
参与人数 3威望 +3 收起 理由
刘前辈 + 1
123jj + 1
highgear + 1
132
highgear| | 2011-5-8 23:48 | 只看该作者
mohanwei老兄是实诚人,技术精湛,119楼的代码质量很高,只是不了解这个刘公公的为人,也没有看出这个帖子的目的。
刘公公这个帖子讨论技术是假,想卖弄“填补空白”是真。只是技术水平欠了点,知识面窄了点,也没有认真的探查 struct copy 的真相, 更是不懂 c++ 构造复制机制,加上逻辑混乱,表达不清,反而弄巧成拙,最终只能以中伤所长来聊以自慰。

如果刘公公没有私心,这会是一个不错的技术讨论帖子。

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
icecut + 1
123jj + 1
133
123jj| | 2011-5-9 04:13 | 只看该作者
顶126楼highgear老师,如果不是无轨电车跑题,这是一个不错的技术讨论帖子。

使用特权

评论回复
134
123jj| | 2011-5-9 04:15 | 只看该作者
本帖最后由 123jj 于 2011-5-9 04:44 编辑


123jj 说自己2年就能达到所长的层次?——文化产业可以搞,但还得考虑所长的情绪耶。
        ——所长听了可不高兴了。所长16岁上大学,当年的神童少年,大学毕业后又学习长进了30年,让姐姐巾帼英雄2年就达到了 ...
刘前辈 发表于 2011-5-8 21:06


所长是老前辈啦,理应尊重,但是,上了一定年纪的人,由于体力精力的因素,很多地方不进则退,很正常的自然规律,因此,除了经验,年轻人在较短的时间内基本赶上也很正常。

俺有眼不识泰山,不知刘老前辈只有年轻人,有失尊敬,以后改称您刘小辈就是了,以示尊重~~~

只是不知刘小辈为何老抓着20年前的老古董51—RTOS不放?上了年纪的也算了,能理解,像刘小辈这等年前有为,大有发展钱途,为何不学点新东西? 当然,这是您的隐私,俺外人不能多问~~~

请教一下刘小辈,你的最新发明的程序和算法,俺编译通不过,请指教~~~


使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
highgear + 1
135
123jj| | 2011-5-9 05:22 | 只看该作者
......

还问个现实问题:123jj的小车站起来没有?所长能帮你什么忙了没有?

......

刘前辈 发表于 2011-5-8 20:09



谢谢刘小辈关心哪个烂小车,能不能站起来,二姨家的所有网友到时都是证人,有目共睹,相信到时您刘小辈也能看到,如您能在7月2号参加21ic北京网友会, 您会当场看到送给水mm的那一套烂小车,能不能当场站起来~~~

至于您问所长能帮俺什么忙?
所长以前的贴子俺基本扫过,当时俺印象最深刻的还有菜农的贴子,个人感觉,所长的贴子思路清晰,套路明确易学易上手,是个好老师,菜农的贴子,思路混乱,不按常规出牌,需仔细反复看几遍,才能领会其暗藏的机关,**其内在的含意,如同菜农的密码学~~~

俺肚子里的菜有很多概念来自于所长和菜农,没有这两位的那些菜,俺也没这个水平和能力做这个烂小车,在此感谢所长和菜农两位先人辛勤的付出。

至于highgear老师能帮俺什么忙?
由于这个烂小车,只是学弟们的玩物,要技术没技术,highgear老师高深的理论和技术,英雄无用武之地,只要highgear老师捧个人场,随手指点一二,就能站起来,比如,匠人先前只用一个三轴加速度传感器方案,highgear老师经理论推断,几乎无法做到站立,那肯定站不起来了,假如不听highgear老师言,死抱着那个方案不放,花了N多的精力,如同造永动机,到时还是一事无成,不就杯具啦~~~

论坛上,有一句名言:“信春哥,没错!”
俺扩大补充几条,
“在控制领域,信highgear老师,没错!”
“在理论上,信HWM老师,没错!”
“在模拟上,信maychang两位老师,没错!”
“在电源上,信大蚂蚁,没错!”
。。。。。。。

使用特权

评论回复
136
jiajiangtao| | 2011-5-9 10:10 | 只看该作者
wet wt sdfza a

使用特权

评论回复
137
icecut| | 2011-5-9 10:50 | 只看该作者
看样你也是会挖坟的人啊...

那道题我还赚了几百块.....比你这个稍多点知识含量

使用特权

评论回复
138
刘前辈|  楼主 | 2011-5-9 11:01 | 只看该作者
本帖最后由 刘前辈 于 2011-5-9 11:28 编辑

虚心请教119楼mohanwei老师: 假定我把初始化数值改为:
xxxStruct test_a[] =
        {
                {1,2,3},
                {4,5,6},
                {1,4,2,6},  
                {7,8,9,1},
                {1,3,5},
                {2,4,6},
                {3,5,7}
        };

没有空元素,您的函数还能标准调用么?(您的算法好像和元素0值相关?)
要是我看错了,先对不起,要不我再看看?


125楼

也许你知道这个数组有几个元素,每个元素有多长,第几个是0……“一行代码”就搞定了。但既然知道,为啥不能直接定义一个没有0的数组,干脆一行代码都不用……
如果不知道,不管在哪里,总得有检测数组长度、哪个是0的代码……东一榔头西一榔头来“深度优化”,代码复杂,毫无任何移植性,总体开销更大……即使在ucos,linux的内核里也看不到这种“深度优化”
不如使用通用的代码,这也是库的存在理由


125楼mohanwei 老师,对不起,帖子没及时看见,忽略了。
老师说的很对,像初始化那些杂乱数据“12345600000……”是便于调试用的。我还真不明白为什么有人会根据元素数值来写算法??!!对其中5个“0”那么在意,123jj 的算法和5个“0”有关了吗?我写的结构整体块拷贝和元素值没关系呀。——只是为了最后在idata 区看到运行结果一证明算**确性而已。——我并不知道原来各个任务的堆栈数据是什么。这不是什么难于理解的事情吧?

        我先后写了4种算法,谁找得出那种和元素“0”有关?我送他100分。后面还有4种算法没写,当然是通用的,参考了书上的。我们自己再写还是没Keil,Intel  源代码写得好,我向你和所有网友学习,同时也向书上学习,“他们为什么要这么写?”

所以,像所长那种一个算法也写不出来的,还装腔作势人,只当是文化产业而已,他们的帖子我看都不看。

        谢谢你和123jj 。通过你们我学到了一些很珍贵的知识。


、、







、、

使用特权

评论回复
139
icecut| | 2011-5-9 12:02 | 只看该作者
ls你太搞笑了.....

他的代码是我见过的很棒的c代码.
让他改成与0无关的.
你的也改成与0无关的

看看谁的代码更容易改,
不容易改的代码就是垃圾代码.

使用特权

评论回复
140
icecut| | 2011-5-9 12:07 | 只看该作者
本帖最后由 icecut 于 2011-5-9 12:22 编辑

lz连测试样例都不会给出...

楼主连现实应用中啥是固定的,啥是不固定的都不知道.

我替你出吧:
xxxStruct test_a[] =
        {
                {1,2,3},
                {4,5,6},
                {1,4,2,6},  
                {7,8,9,1},

  {1,4,2,6},  
                {1,3,5},
                {2,4,6},
                {3,5,7}
        };
结果:
xxxStruct test_a[] =
        {
                {1,2,3},
                {4,5,6},
                {7,8,9,1},  
                {1,3,5},
                {2,4,6},
                {3,5,7}
        };

样例2
xxxStruct test_a[] =
        {
                {1,2,3},
                {4,5,6},
                {7,8,9,1},
                {1,4,2,6},  
                {1,3,5},
                {2,4,6},
                {3,5,7}
        };
结果:
xxxStruct test_a[] =
        {
                {1,2,3},
                {4,5,6},
                {7,8,9,1},  
                {1,3,5},
                {2,4,6},
                {3,5,7}
        };

显然他对,你错.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则