青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

變態的C語言程序【轉】


主要是是像大家展示了一些C語言的變態玩法。也向大家展示了一下程序是可以寫得讓人看不懂的,在那篇文章中,可以看到很多人的留言,很多人都覺得很好玩,是的,那本來是用來供朋友們“消遣作樂”,供娛樂娛東而已,不必太過認真。

 

不過,通過這種極端的寫法,大家可以看到源代碼都可以寫得那么復雜難懂的。大家也許在贊嘆之余一笑了之,而我則希望,大家能夠在娛樂以后認真思考一下,你不要以為咱們自己不會把代碼搞得那么復雜,只不過沒有像那6個Hello World一樣那么極端,不過,說句老實話,咱們每個程序都有把清晰的程序搞得一團混亂的潛能,只不過程度不一樣罷了,我并不是在這里危言聳聽,大家好自為之。

 

下面是一個Step by Step的教程,教你如何把一個清晰的代碼變得復雜難懂的。當然,這只是一個“簡明教程”了。還是那句話——“本文僅供朋友們“消遣作樂”,如果你要覺得有意思的話,頂個貼。如果你覺得沒什么意思的話,一笑了之。僅供娛樂而已,不必太過認真。”

正常程序
下面是一個找出素數的程序:

void primes(int cap)
{
    int i, j, composite;

    for(i = 2; i < cap; ++i) {
        composite = 0;
        for(j = 2; j * j < i; ++j) {
            composite += !(i % j);
        }
        if(!composite){
            printf("%d\t", i);
        }
    }
}

int main()
{
    primes(100);
}
下面我們來看看如何把上面這段代碼搞得復雜難懂。

第一步、把for變成while
通常來說,for循壞要以while循壞簡單一些,上面的程序有二重for循環,我們不但要把其變成while循環,而且還要把二重循環的變成一重的循環,然后使用大量的if-else語句來判斷。

void primes(int cap)
{
    int i, j, composite, t = 0;
   
    while(t < cap * cap) {
        i = t / cap;
        j = t++ % cap;
        if(i <= 1);
        else if(!j)
            composite = j;
        else if(j == i && !composite)
            printf("%d\t",i);
        else if(j > 1 && j < i)
            composite += !(i % j); 
    }
}

int main()
{
    primes(100);
}
第二步,把循壞變成遞歸
遞歸在某些時候是可以把代碼變得簡單,但大多數的情況下是把代碼變得復雜,而且很沒有效率。下面是把上面的while循環變成了遞歸。變成了遞歸后,函數的參數都變成3個了。

void primes(int cap, int t, int composite)
{
    int i,j;
    i = t / cap;
    j = t % cap;
    if(i <= 1)
        primes(cap,t+1,composite);
    else if(!j)
        primes(cap,t+1,j);
    else if(j == i && !composite)
        (printf("%d\t",i), primes(cap,t+1,composite));
    else if(j > 1 && j < i)
        primes(cap,t+1, composite + !(i % j));
    else if(t < cap * cap)
        primes(cap,t+1,composite);
}
 
int main()
{
    primes(100,0,0);
}
第三步,弄亂代碼結構/使用沒有含義的變量名
關于如何弄亂代碼結構,其中一個小技巧是,使用“?”表達式代替if-else語句。

void primes(int m, int t, int c)
{
    int i,j;
    i = t / m;
    j = t % m;
    (i <= 1) ? primes(m,t+1,c) : (!j) ? primes(m,t+1,j) : (j == i && !c) ?
    (printf("%d\t",i), primes(m,t+1,c)) : (j > 1 && j < i) ?
    primes(m,t+1,c + !(i % j)) : (t < m * m) ? primes(m,t+1,c) : 0;
}
 
int main()
{
    primes(100,0,0);
}
第四步,取消臨時變量
臨時變量一般用來保存反復使用的一個表達式的值。使用大量重復的表達式來取消這些臨時變量的也可以讓代碼復雜起來。

void primes(int m, int t, int c)
{
  ((t / m) <= 1) ? primes(m,t+1,c) : !(t % m) ? primes(m,t+1, t % m) :
  ((t % m)==(t / m) && !c) ? (printf("%d\t",(t / m)), primes(m,t+1,c)) :
  ((t % m)> 1 && (t % m) < (t / m)) ? primes(m,t+1,c + !((t / m) % (t % m))) :
  (t < m * m) ? primes(m,t+1,c) : 0;
}

 
int main()
{
    primes(100,0,0);
}
第五步,繼續弄亂變量名
我們知道,下劃線是合法的變量名,所以,我們不妨用__,___,____來代替m,t,c。函數名也可以使用下劃線來代替。讓我們來看看求素數的函數能變成什么。

void _(int __, int ___, int ____)
{
    ((___ / __) <= 1) ? _(__,___+1,____) : !(___ % __) ? _(__,___+1,___ % __) :
    ((___ % __)==(___ / __) && !____) ? (printf("%d\t",(___ / __)),
    _(__,___+1,____)) : ((___ % __) > 1 && (___ % __) < (___ / __)) ?
    _(__,___+1,____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
    _(__,___+1,____) : 0;
}

int main()
{
    _(100,0,0);
}
第六步,移除常量
在上面的程序中,還有一些常量,你可以通過增加一個宏定義,或是增加一個函數的形參來取代這一常量。

void _(int __, int ___, int ____, int _____)
{
    ((___ / __) <= _____) ? _(__,___+_____,____,_____) : !(___ % __) ? _(__,___+_____,___ % __, _____) :
    ((___ % __)==(___ / __) && !____) ? (printf("%d\t",(___ / __)),
    _(__,___+_____,____,_____)) : ((___ % __) > _____ && (___ % __) < (___ / __)) ?
    _(__,___+_____,____,_____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
    _(__,___+_____,____,_____) : 0;
}
 
int main() {
    _(100,0,0,1);
}
程序到這里應該差不多了。還是那句話——“每一個程序員都有把源代碼弄復雜的潛質”,大家好自為之。


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/haoel/archive/2009/05/30/4225974.aspx

posted on 2009-06-01 23:18 colen 閱讀(225) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

公告

Polymerized Myblog successfully, WELCOME...

常用鏈接

留言簿(1)

隨筆分類(4)

相冊

study community

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久国产免费免费| 久久gogo国模裸体人体| 欧美亚洲在线视频| 中文国产亚洲喷潮| 一区二区三区福利| 亚洲午夜日本在线观看| 亚洲开发第一视频在线播放| 亚洲精品中文字幕女同| 一区二区国产日产| 亚洲欧美日韩专区| 久久全国免费视频| 欧美日韩一区二区在线视频| 国产精品久在线观看| 亚洲精品视频啊美女在线直播| 国内伊人久久久久久网站视频| 亚洲综合丁香| 一区二区三区不卡视频在线观看| 亚洲高清在线播放| 亚洲毛片一区| 午夜视频久久久| 欧美中文在线视频| 美女精品自拍一二三四| 欧美激情小视频| 亚洲精品国产欧美| 一区二区激情小说| 久久超碰97中文字幕| 欧美激情久久久久| 国产三区精品| 亚洲伦理在线观看| 欧美在线观看视频一区二区| 免费看黄裸体一级大秀欧美| 日韩一区二区精品视频| 久久九九国产精品怡红院| 欧美成人免费全部| 国产女优一区| 日韩视频免费| 久久亚洲一区| 宅男噜噜噜66国产日韩在线观看| 麻豆av福利av久久av| 国产精品最新自拍| 在线视频精品一| 欧美福利视频在线| 久久国产精品72免费观看| 国产精品萝li| 在线视频亚洲欧美| 亚洲国产视频一区| 久久久亚洲国产美女国产盗摄| 欧美色网一区二区| 亚洲欧洲一区二区在线播放| 久久蜜桃精品| 午夜精彩国产免费不卡不顿大片| 欧美日韩亚洲在线| 一区二区三区欧美在线| 亚洲美女少妇无套啪啪呻吟| 欧美激情国产日韩| 亚洲精品无人区| 国产精品人人做人人爽| 欧美久久久久久蜜桃| 在线观看三级视频欧美| 久久综合给合久久狠狠色| 午夜一级久久| 国产视频一区欧美| 久久精品中文字幕一区二区三区| 亚洲在线黄色| 国产农村妇女精品| 久久精品国产清自在天天线| 欧美一区二区三区四区视频 | 欧美成人午夜免费视在线看片| 亚洲一区在线播放| 国产精品自拍视频| 久久香蕉国产线看观看av| 久久精品国产精品亚洲精品| 在线高清一区| 亚洲动漫精品| 欧美视频久久| 久久精品免费观看| 久久视频一区二区| 亚洲精品美女免费| 一区二区高清视频| 国产中文一区| 亚洲国产精品一区二区三区| 欧美日韩视频在线第一区| 亚洲欧美日韩国产精品| 欧美一级久久久久久久大片| 一区二区在线观看视频| 亚洲高清视频一区二区| 欧美色123| 久久亚裔精品欧美| 欧美剧在线观看| 欧美一级片在线播放| 久久久久久久久久久久久女国产乱| 亚洲国产清纯| 亚洲一区二区黄色| 亚洲大胆av| 亚洲无线观看| 亚洲国产毛片完整版| 99精品欧美一区二区三区| 国产欧美一区二区色老头 | 国产精品免费一区二区三区观看| 久久国产婷婷国产香蕉| 欧美国产国产综合| 欧美在线二区| 欧美日韩精品二区| 乱码第一页成人| 国产精品国色综合久久| 欧美成人69av| 国产伦精品一区二区三区免费| 欧美成人午夜77777| 国产精品一区毛片| 亚洲人体偷拍| 影音先锋中文字幕一区| 亚洲午夜视频| 亚洲视频一区在线| 麻豆91精品91久久久的内涵| 久久精品国产免费看久久精品 | 欧美在线1区| 西西人体一区二区| 美女精品在线观看| 久久久欧美精品| 国产精品ⅴa在线观看h| 免费在线一区二区| 国产亚洲精品高潮| 一二三区精品福利视频| 亚洲精选视频在线| 欧美日韩国产综合久久| 欧美大片18| 欧美xxxx在线观看| 国产一区白浆| 亚洲欧美日韩精品久久奇米色影视| 亚洲精品在线一区二区| 久久一区二区三区超碰国产精品| 性欧美xxxx大乳国产app| 欧美人成在线视频| 亚洲品质自拍| 99视频超级精品| 欧美激情小视频| 91久久久久久久久久久久久| 亚洲激情精品| 欧美精品国产一区| 亚洲免费观看在线观看| 亚洲视频电影图片偷拍一区| 欧美日韩在线电影| 一本色道久久综合亚洲精品不 | 一本色道久久综合亚洲精品高清 | 亚洲一区在线免费观看| 午夜精品久久一牛影视| 国产精品香蕉在线观看| 亚洲欧美怡红院| 狂野欧美一区| 亚洲国产专区校园欧美| 欧美久久婷婷综合色| 一区二区三区鲁丝不卡| 亚洲自拍另类| 国产欧美日韩亚州综合| 久久国内精品视频| 欧美国产国产综合| 99re6热在线精品视频播放速度| 99精品热视频| 欧美成人xxx| 亚洲精品久久久久久久久久久久 | 牛夜精品久久久久久久99黑人| 男人的天堂成人在线| 亚洲精品久久久久久久久久久久| 欧美激情精品久久久久久免费印度| 亚洲乱码国产乱码精品精| 亚洲欧美怡红院| 国产精品国产三级国产aⅴ浪潮| 亚洲欧美日韩另类| 欧美激情1区2区3区| 在线视频免费在线观看一区二区| 国产精品美女主播| 亚洲精品在线免费| 欧美日本视频在线| 亚洲一区在线直播| 欧美国产在线视频| 亚洲一区二区在线免费观看| 国产欧美日韩在线观看| 久久综合给合| 一本色道久久88亚洲综合88| 久久精品99国产精品酒店日本| 精品av久久久久电影| 欧美国产日韩一区二区在线观看| 日韩视频一区二区三区| 久久久免费av| 一区二区三区高清不卡| 韩国一区二区三区美女美女秀| 欧美精品成人91久久久久久久| 亚洲男人的天堂在线aⅴ视频| 久久久99免费视频| 最新日韩在线| 国产一区二区在线观看免费播放| 欧美日韩国产成人在线免费| 性亚洲最疯狂xxxx高清| 一区二区免费看| 欧美大片免费观看| 久久久久久9| 亚洲色诱最新| 亚洲大片精品永久免费| 国产日韩欧美在线看| 欧美三级免费|