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

天之道

享受編程的樂趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

編寫一遞歸函數將一根整數n轉換成字符串,例如輸入482,應輸出字符串“482”。n的位數不確定,可以是任意位數的整數。

代碼測試通過:

#include<stdio.h>
#include<string.h>
void IntToStr(int n);
char str[80]={0};
int main()
{
    int num;
    printf("input an integer number: ");
    scanf("%d",&num);
    IntToStr(num);
    printf("The string is: %s\n",str);
    return 0;
}

void IntToStr(int n)
{
    int i;
    if(n == 0)
        return;
    for(i=strlen(str)-1;i>=0;i--)
        str[i+1]=str[i]; //向后移一位
    str[0]=n%10+0x30; //最開始輸入的數字最后一位放在str[0],隨后向后移,直到n==0 
    IntToStr(n/10); //n不斷取除個位的其他高位數
}




    

posted @ 2012-08-12 09:58 hoshelly 閱讀(860) | 評論 (0)編輯 收藏

輸入若干個單詞,輸出它們的平均長度。單詞只包括大寫字母和小寫字母,用一個空格隔開。

代碼測試通過:

#include<stdio.h>
#include<string.h>
int main()
{
    char s[1000];
    char *p;
    p=&s[0];
    int len=0,tot=0,ws=0,per_len,i;
    gets(s);
    len=strlen(s);
    for(i=0;i<=len;i++)
    {
        if( *p >='a' && *p<='z' || *p >='A' && *p<='Z')
        {
            tot++;
            p++;
        }

        else if( *p == ' ' || *p =='\0')
        {
            ws++;
            p++;
        }
    }

    per_len=tot/ws;
    printf("%d\n",per_len);

    return 0;
}

posted @ 2012-08-11 23:11 hoshelly 閱讀(594) | 評論 (0)編輯 收藏

輸入正整數n<=20,輸出一個n層的倒三角形,例如n=5時輸出如下:

#########
  #######
    #####
      ###
        #

代碼測試通過:

#include<stdio.h>
int main()
{
    int n,s,i,j,k,c=0;
    scanf("%d",&n);
    s=2*n-1;
    for(i=0;i<n;i++)
    {
          if(c!=0) //如果不是第一行,即s要減2,作為輸出#的個數
              s=s-2;
          for(k=0;k<c;k++)
          {
            printf(" ");
          }
          for(j=0;j<s;j++)
          {
            printf("#");
          }
          for(k=0;k<c;k++)
          {
              printf(" ");
          }
          c++;
        

        printf("\n");
    }
    return 0;
        
}
        

posted @ 2012-08-10 20:24 hoshelly 閱讀(472) | 評論 (0)編輯 收藏

刪數問題
時間限制:1000 ms  |  內存限制:65535 KB
描述

           給出一個N位正整數(首位不為0),去掉其中S個數字后剩下的數字按左右次序組成一個新的N-S位正整數(首位不能為0)。對給定的N和S,尋找一種刪數規則使得剩下得數字組成的新數最小。

輸入
         第一行一個正整數T ,表示有T組測試數據。

        對于每組測試數據:第一行兩個正整數 n ,s (s<  n <= 10, 000) (用空格隔開); 第二行為一個n 位正整數。

輸出
         對于每組測試數據輸出一行:最小的新數。

樣例輸入
2
10 2
1234334789
11 3
90019008798
樣例輸出
12333478
19008798

代碼:

#include<stdio.h>
int main()
{
    int t,n,s,i,j,c=0;
    char str[1200];
    char *p,*sp;
    scanf("%d",&t);
    while(t--)
    {
        i=0;
        scanf("%d%d",&n,&s);
        scanf("%s",str);
        p=&str[0];
        sp=&str[1];
        while(*sp !='\0')
        {
            if(str[0] =='0')
            {
                for(j=0;j<n-c;j++)
                {
                   str[j]=str[j+1];
                }
                c++;
            }
            if(*p == str[0] && *p > *sp)
            {
                for(j=0;j<n-c;j++)
                {
                   str[j]=str[j+1];
                }
                i++;
                p++;
                sp++;
                continue;
            }
            for(;*p > *sp;*p--,*sp--)
            {
                if(c != s)
                {
                  for(j=i;j<n-c;j++)
                  {
                     str[j]=str[j+1];
                  }
                  i--;
                  c++;
                }
            }
          if(c != s && str[0] !='0')
          {
            p++;
            sp++;
            i++;
          }
           if(c == s)
           {
               break;
           }
        }

        for(i=0;i<n-s;i++)
        {
            printf("%c",str[i]);
        }
        printf("\n");
    }

    return 0;
}

posted @ 2012-08-10 11:44 hoshelly 閱讀(1086) | 評論 (0)編輯 收藏

我們學習Linux的時候勢必要學習一大堆對于大部分正常人來說枯燥無比的命令行,因為是第一次嘗試在一個黑箱子里面敲一串一串不熟悉的命令,可以理解的啦。現在我總結出一些Linux中比較常用的命令行。

一)列出文件:ls ,如果要列出本目錄下的文件屬性呢,例如想知道他們的文件權限、大小、日期,那么就用 ls -l ,也可用其命令別名 ll 。
                   我們都知道Linux中都有一些隱藏的文件,那么如何顯示出它們呢?用 ls -a 即可顯示出所有文件,包括隱藏文件。要列出這些文件的屬性,用 ls -al 
                   列出目錄用:ls -d
                   如果我們想找出一個特定的文件如file 的信息,那么可以用ls  -l file ,又如要尋找一個前綴為test的文件的信息,可以這樣:ls -l test*,*為通配符。
                   如果我們想找出文件名中帶有數字或字母的相關文件,可以這樣 : ls -f [0-9]* / ls -f [a-z]*

二)打開文件或目錄:如想打開名為 file.txt文件,用cat file.txt即可顯示出內容。如想把文件內容的行號顯示出來,用 cat -n file.txt 即可 ;打開目錄tmp 則用 cd tmp

三)復制文件: 如想把文件file.txt 復制到目錄 /test 下,即可用:cp file.txt /test ;如想把目錄 /etc/ 的所有內容復制到 /tmp,用:cp /etc/ /tmp

四)刪除文件或目錄:如想刪除文件file.txt 則可: rm file.txt 。如想把目錄tmp(包括有內容的目錄)都刪除掉,用 rm -rf tmp ,而 rmdir tmp 刪除的是一個空目錄。

五)移動文件或重命名:如把文件file.txt移動到目錄tmp中: mv file.txt tmp 。把文件file.txt重命名為 test.txt,則可: mv file.txt test.txt

六)翻頁查看命令:1. 如想查看/etc/中的文件man.config,可 more /etc/man.config ,敲空格鍵表示向下翻一頁;Enter表示向下翻“一行”;/字符串可以向下搜索字符串:如搜索word,可以 /word ;離開more 可以用 q ;2. 也可用 less 進行翻頁操作:less /etc/man.config ,使用less可以向前或向后翻頁,而more只能向后翻頁;?字符串表示向前搜索的功能,其他操作和more 大體相同。

七)創建新文件或目錄 : 如創建新文件 test.txt 可以: touch test.txt ;創建目錄abc,用命令:mkdir abc . 如果我們要創建一個名為junk.data ,大小為1M,內容為空的文件,該怎么辦呢?可以使用命令: dd if=/dev/zero of=junk.data bs=1M count=1 即可,其中dd是用來創建特定大小文件的命令,dd命令會克隆給定的輸入內容,然后將一模一樣的一份副本寫入到輸出,stdin、設備文件、普通文件都可以作為輸入. if 代表輸入文件, of 代表輸出文件, bs代表以字節為單位的塊大小,count代表要被復制的塊數。

八)改變文件的權限: 1. 使用符號方法改變文件權限:在此之前了解下who /action 的知識,u表示屬主、g表示組、o表示其他、a表示所有;+表示增加文件權限、-表示減少文件權限、=明確地設置文件權限。好了,如果現在我們想把一個目錄下的所有文件都改變為對所有人均可訪問,則可用命令:chmod a=r * (或chmod guo=r *),注意空格。
如果想阻止除了文件屬主之外的任何人寫文件 test.txt ,可用命令: chmod go-w test.txt 
2. 使用八進制方法改變文件權限:r=4,w=2,x=1. 把各個想要賦予的權限值相加即可得到用來指定文件屬主、組和其他用戶對文件的權限。 如:對文件test.txt 改為對所有均有讀、寫、執行的權限:chmod 777 test.txt

九)改變文件屬主和組: 1. 改變文件屬主:如把文件test.txt 改變為 zlb 所屬有,則可 chown zlb: test.txt ,冒號不能省略。 2. 改變文件所屬的組:可以用1中 chown :authors test.txt 改變文件test.txt所屬的組;也可以用 chgrp authors test.txt 改變文件為authors這個組所有。


posted @ 2012-08-02 11:49 hoshelly 閱讀(232) | 評論 (0)編輯 收藏

shell是和unix系統交流的語言,它是unix系統的工具,利用它可以來和操作系統的核心功能進行交互。
1)兩種模式:交互式和非交互式Shell;所謂交互,即用戶編寫shell命令行來和操作系統交互。而在非交互模式下,不需要用戶直接敲命令行,而是通過shell讀命令之后,(就存在文件里),然后再執行,當文件結束的時候,就退出。
2)啟動交互式shell:$ /bin/bash
                            bash$
第一個$是登陸系統時就有的,第二個bash$是由用戶啟動的Shell來顯示的。這樣一來就有了兩個交互式的shell,可以用來測試之用。退出第二個shell可用命令:
exit,然后就會回到原先的shell。
3)啟動非交互式shell:$ /bin/sh filename
這里的filename指的是可執行的文件,比如用shell寫  echo 'hello world!' 放在一個命名為hello的文件里,要執行它的時候,就要用到命令 /bin/sh hello
4)基本命令行總結如下:
$ ls :列出當前目錄的內容;
$ ls -a :列出當前目錄包括不可見文件的內容;
$ man ls :獲取關于ls命令的有關信息;注:不懂的命令要及時找man
$ cat [filename] :查看文件的內容
$ wc files :獲取文件內容的行、單詞和字符的數目;
$ wc -l file :統計行數
$ wc -w file: 統計單詞
$ wc -m file: 統計字符
$ cp src dest :拷貝文件;src:被拷貝文件 、dest:拷貝到的目錄
$ mv src dest :更改文件名
$ rm file :刪除文件
$ ls dir :列出目錄
$ mkdir dir :創建目錄dir
$ cp -r src dest : 拷貝文件和目錄; src:拷貝文件的目錄的路徑、dest:拷貝被放置的目錄的路徑
$ mv src dest :移動目錄
$ rmdir dir:刪除目錄dir(內容為空的)
$ rm-r dir: 刪除目錄dir及其內容(無論內容是否為空)

好了,先介紹這些,以后會陸續更新。

posted @ 2012-06-09 02:47 hoshelly 閱讀(233) | 評論 (0)編輯 收藏

掌握Linux學習方法學好Linux
如果你愛好學習知識,尤其是Linux操作系統知識,隨著Linux應用的擴展,許多朋友開始接觸Linux,可你不知道去哪里找到這些知識,來這里,讓你更加了解Linux學習方法。讓你全面掌握Linux學習方法。

1.學習的目的

通過Linux的學習掌握UNIX的目的想必不用多說了,在這個網絡人才身價倍增的年代,想靠技術吃飯又不想掌握網絡和編程技術是不明智的。當人們第一次聽說Linux并躍躍欲試的時候,總會提出幾個?,它是什么(What)?為什么要用它(Why)?怎樣學習它(How)?作為開放源碼運動的主要組成部分,Linux的應用越來越廣泛,從我們平時的娛樂、學習,到商業、政府辦公,再到大規模計算的應用。為了滿足人們的需求,各種各樣的、基于Linux的應用軟件層出不窮。只要具備了LinuX的基本功,并具有了自學的能力之后,都可以通過長期地學習予以掌握。

2.從命令開始、從基礎開始

常常有些朋友一接觸Linux就希望構架網站,根本沒有想到要先了解一下Linux的基礎。這是相當困難的。雖然Linux桌面應用發展很快,但是命令在Linux中依然有很強的生命力。Linux是一個命令行組成的操作系統,精髓在命令行,無論圖形界面發展到什么水平這個原理是不會變的。Linux命令有許多強大的功能:從簡單的磁盤操作、文件存取、到進行復雜的多媒體圖象和流媒體文件的制作。這里筆者把它們中比較重要的和使用頻率最多的命令,按照它們在系統中的作用分成幾個部分介紹給大家,通過這些基礎命令的學習,我們可以進一步理解Linux系統。

3.選擇一本好的Linux書籍

無論在論壇還是讀者反饋中,我們看到最多的問題往往是某個新手,在安裝或使用Linux的過程中遇到一個具體的問題就開始提問,很多都是重復性的問題,甚至有不少人連基本的問題描述都不是很清楚。這說明很多初學Linux的人還沒有掌握基本功。怎樣才能快速提高掌握Linux的基本功呢?最有效的方法莫過于學習權威的Linux工具書,工具書對于學習者而言是相當重要的。一本錯誤觀念的工具書卻會讓新手整個誤入歧途。目前國內關于Linux的書籍有很多不過精品的不多,筆者強烈建議閱讀影印本的o'reilly原版Linux圖書http://www.oreilly.com.cn/,而且出版社還提供了一個非常好的路線圖:linux.php">http://www.oreilly.com.cn/guide/guide_linux.php

4.養成在命令行下工作的習慣

一定要養成在命令行下工作的習慣,要知道X-window只是運行在命令行模式下的一個應用程序。在命令行下學習雖然一開始進度較慢,但是熟悉后,你未來的學習之路將是以指數增加的方式增長的。對網管員來說,命令行實際上就是規則,它總是有效的,同時也是靈活的。即使是通過一條緩慢的調制解調器線路,它也能操縱幾千公里以外的遠程系統。 5.用UNIX思維思考Linux

由于Linux是參照UNIX的思想來設計的,理解和掌握它就必須以Unix的思維來進行,而不能以Windows思維。不可否認,Windows在市場上的成功很大一部分在于技術思想的獨到之處。可是這個創新是在面對個人用戶的前提下進行的,而面對著企業級的服務應用,它還是有些力不從心。多年來在計算機操作系統領域一直是二者獨大:UNIX在服務器領域,Windows在個人用戶領域。由此可見,用戶需求決定了所采用的操作系統。不管什么原因,如果要學習Linux,那么首先要將思維從Windows的"這個小河"中拖出來,放入UNIX的海洋。

6.學習Shell

對于Shell(中文名稱殼),習慣Windows的讀者肯定是非常陌生的,因為Windows只有一個"Shell"(如果可以說是Shell的話),那就是Windows自己。用一句話容易理解的解釋就是,shell是用戶輸入命令與系統解釋命令之間的中介。最直觀的說法,一種Shell有一套自己的命令。舉一個容易理解的例子,Linux的標準Shell是Bash Shell;Solaris的shell是B shell;Linux的Shell是以命令行的方式表現出來的。讀者可能會不理解,Windows從命令行"進化"到了圖形界面,那么Linux現在還使用命令行豈不是一種倒退?當初我剛剛接觸Linux時就曾有過這種想法。可是后來發現,如果使用圖形界面,那么分配給應用軟件的資源就少了,在價格昂貴的服務器上,能夠以較低的硬件配置實現同樣的功能是非常重要的。

下面舉例說明:一臺服務器有1GB內存,假設其中512MB用于處理圖形界面,若要安裝一個需要784MB內存的數據庫軟件,唯一的辦法就是擴大內存。但是如果使用命令行,系統可能只需要64MB內存,其他的內存就可以供數據庫軟件使用了。使用命令行,不僅是內存,而且CPU及硬盤等資源的占用都要節省很多。所以,作為服務器,使用命令行是優點而不是缺點。既然Shell有這么多優點,就必須要學習它。

7.勤于實踐

要增加自己Linux的技能,只有通過實踐來實現了。所以,趕快找一臺計算機,趕快安裝一個Linux發行版本,然后進入精彩的Linux世界。相信對于你自己的Linux能力必然大有斬獲。此外,人腦不像計算機的硬盤一樣,除非硬盤壞掉了或者是資料被你抹掉了,否則存儲的資料將永遠而且立刻地記憶在硬盤中。在人類記憶的曲線中,你必須要不斷地重復練習才會將一件事情記得比較熟。學習Linux也一樣,如果你無法經常學習的話,學了后面的,前面的往往忘了。對Linux命令熟悉后,可以開始搭建一個小的Linux網絡,這是最好的實踐方法。Linux是網絡的代名詞,Linux網絡服務功能非常強大,不論是郵件服務器、Web服務器、DNS服務器等都非常完善。當然你不需搭建所有服務,可以慢慢來。需要說明的是這個Linux網絡對于初學者有兩三臺計算機即可。自己多動手,不要非要等著別人幫你解決問題。

8.學會使用文檔

和私有操作系統不同,各個Linux的發行版本的技術支持時間都較短,這對于Linux初學者是往往不夠的。其實當你安裝了一個完整的Linux系統后,其中已經包含了一個強大的幫助系統,只是可能你還沒有發現和使用它們的技巧。主流Linux發行版都自帶非常詳細的文檔(包括手冊頁和FAQ),從系統安裝到系統安全,針對不同層次的人的詳盡文檔,仔細閱讀文檔后40%問題都可在此解決。查閱經典工具書和Howto,特別是Howto是全球數以萬計的Linux、UNIX的經驗總結非常有參考價值,通常40%的問題可以解決。安裝一個新的軟件時先看README,再看INSTALL然后看FAQ,最后才動手安裝,這樣遇到問題就知道為什么了。如果說明文檔不看,結果出了問題再去論壇來找答案反而浪費時間。

當查找文檔時,一定要看文檔是在何種版本、何種環境及何種狀態下出現的何種結果。對于文檔的有效性,一時還無法在操作前就知道結論如何,那么對某個專題或問題,閱讀相關的多篇文章將會節省大量的時間,還可以保證盡量"干凈"的環境,有效避免因為不同操作所造成的更多問題。操作時要仔細核對各個步驟及輸出的結果,盡量保持與文檔一致。 9.在Linux論壇獲取幫助

如果上面的措施沒有解決問題,此時你就需要Linux社區的幫助了。需要說明的是你要有周全的思考,準備好你的問題,不要草率的發問,否則只會得到到草率的回答或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力,你越能得到實質性的幫助。最好先搜尋一下論壇是否有你需要的文章。這樣可以獲得事半功倍的效果。

你需要提供精確有效的信息。這并不是要求你簡單的把成噸的出錯代碼或者數據完全轉儲摘錄到你的提問中。如果你有龐大而復雜的測試條件,盡量把它剪裁得越小越好。可能你會遇到這種情況,對于一個問題會出現不同內容回答,這時你需要通過實踐來驗證。另外把這個問題放在其他Linux社區請求幫助也是一種選擇。如果得不到答案,請不要以為我們覺得無法幫助你。有時只是看到你問題的人不知道答案罷了。這時換一個社區是不錯的選擇。

10.學習專業英文

如果你想深入學習Linux,看不懂文檔,因為實在是太難了。寫得最好的,最全面的文檔都是英語寫的,最先發布的技術信息也都是用英語寫的。即便是非英語國家的人發布技術文檔,也都首先翻譯成英語在國際學術雜志和網絡上發表。

通過man、info等命令,可以從在線幫助中快速地獲得所需要的命令和操作方法。不要害怕海量的系統幫助,仔細閱讀幾個man或info文檔就會發現,這些幫助幾乎都按照固定格式寫成命令名稱、參數、參數說明、使用例子、參考等。當英語成為一種習慣,就會自覺地查找或訂閱互聯網上感興趣的英文材料。這樣,在不知不覺中就已經和世界同步了。

11.在社區共享你的經驗

隨著Linux應用的擴展,出現了不少Linux社區。其中有一些非常優秀的社區:水木清華、其中有一些非常優秀的社區:www.linuxforum.net(國內最高水平GNU站點)、http://www.chinaunix.net/(中國最大的Unix技術社區),隨著知識的不斷積累,就可以把自己動手解決一些前人沒有遇到的問題寫出文檔在網絡上共享給其他讀者。這個時候,也就成為了一名"高手"。Linux的使用者一般都是專業人士,他們有著很好的電腦背景且愿意協助他人,Linux高手更具有鼓勵新手的文化精神。

最后是筆者的Linux學習的一個路線圖(roadmap):

了解Linux的基礎知識,這些包含了用戶管理、群組的概念、權限的觀念等;

掌握100個以上的常用命令;

掌握.tgz、.rpm等軟件包的常用安裝方法

學習添加外設,安裝設備驅動程序(比如網卡)

熟悉Linux文件系統和目錄結構。

掌握vi,gcc,gdb等常用編輯器,編譯器,調試器。

理解shell別名、管道、I/O重定向、輸入和輸出及shell腳本編程。

網絡的基礎包括:掌握路由概念、OSI七層網絡模型、TCP/IP模型及相關服務對應的層次對于Linux學習非常重要的。然后學習Linux環境下的組網。

以上是Linux學習方法,希望對你有些幫助。

posted @ 2012-06-08 18:18 hoshelly 閱讀(362) | 評論 (0)編輯 收藏


建立一個鏈表,其中的節點包括學號,成績信息。要求用動態插入鏈表的方法實現,就是輸入第一個節點信息時,則必須創建該鏈表,之后每輸入一個學生節點的基本信息,就把該節點插入到已有的鏈表當中。要求按照學號順序插入。輸入的時候可以不按照學號的順序,輸入0 0 表
示輸入結束。
(不允許對輸入的數據排序后再創建鏈表)

Sample Input

1 50
4 60
2 70
3 80
5 64
0 0 

Sample Output

The list is:
1 50
2 70
3 80
4 60
5 64



#include<stdio.h>
#include<stdlib.h>

struct student
{
    int number;
    float score;
    struct student *next;
};

int main()
{
    int n=0;
    struct student *head,*p1;
    p1=(struct student*)malloc(sizeof(struct student));
    scanf("%d %f",&p1->number,&p1->score);
    head=p1;
    head->next=NULL;
    while(p1->number!=0 && p1->score!=0)
    {
          n++;
          p1->next=(struct student*)malloc(sizeof(struct student));
          p1=p1->next;
          p1->next=NULL;
          scanf("%d %f",&p1->number,&p1->score);
    }
    
    struct student *p3,*p4;
    p3=(struct student*)malloc(sizeof(struct student));
    p4=(struct student*)malloc(sizeof(struct student));
    for(int i=0;i<n;i++) 
    {    
        p3=head;
        for(int j=0;j<n-i-1;j++)
        {
            p4=p3->next;
            if(p3->number>p4->number)
            {
                int k=p3->number;
                p3->number=p4->number;
                p4->number=k;
                float m=p3->score;
                p3->score=p4->score;
                p4->score=m;
            }
            p3=p3->next;
        }
    }
    printf("The list is:\n");
     p3=head;
     do
     {
      if(p3->number ==0 && p3->score==0)
          continue;
      printf("%d %.0f\n",p3->number,p3->score); 
      p3=p3->next;
    }while(p3!=NULL);

    free(p1);
    free(p3);
    free(p4);
    return 0;
}
    

posted @ 2012-05-12 10:29 hoshelly 閱讀(1834) | 評論 (0)編輯 收藏

輸入
第一行包含一個整數T,表示有T組測試數據。對于每組測試數據:第一行包含一個整數N,表示有N個元素(N不大于50),第二行包含N個整數,表示這N個元素(各個元素的值小于1000)。

輸出
對于每組測試數據,輸出一行,包含一個數據即返回的最小值。

樣例輸入
2
3
3 2 1
5
-1 5 3 -2 4
樣例輸出
1
-2

解法一:
將一個數組,分成兩部分,然后求出兩部分中的最小值,當然這里有一個要考慮的情況是,然后元素的個數為奇數個的時候,我們可以將其分為三部分,中間元素,前半部分,后半部分。然后使用遞歸的方法,求出數組元素中的最小值。

#include<stdio.h>
int Min(int a[],int n)
{
    int a1,a2,a3;
    if(n==1)
        return a[0];
    if(n%2==0)
    {
        a1=Min(a,n/2);
        a2=Min(a+n/2,n/2);
        if(a1>a2)
            return a2;
        else
            return a1;
    }
    else
    {
        a1=Min(a,n/2);
        a2=Min(a+n/2+1,n/2);
        a3=a[n/2];
        if(a1>a2)
        {
            if(a2>a3)
                return a3;
            else
                return a2;
        }
        else
        {
            if(a1>a3)
                return a3;
            else
                return a1;
        }
    }
    
}


int main()
{
    int n,m,i;
    int a[50];
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&m);
        for(i=0;i<m;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("%d\n",Min(a,m));
    }
    return 0;
}

解法二:
代碼如下
#include<stdio.h>
int Min(int a[],int n)
{
    if(n==0)
        return a[0];
    else
        return ((Min(a,n-1)<a[n])? Min(a,n-1):a[n]);
    
}


int main()
{
    int n,m,i;
    int a[50];
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&m);
        for(i=0;i<m;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("%d\n",Min(a,m-1));
    }
    return 0;
}


posted @ 2012-05-09 00:50 hoshelly 閱讀(3092) | 評論 (0)編輯 收藏

輸入

第一行包含一個整數T,表示有T組數據。對于每組數據:第一行包含一個數字N(<100),表示該組數據由N個元素;第二行包含N個數,就是這N個元素的值( <10000 )。

輸出

對于每組數據輸出一行,包含排序好后的N個元素,要求從小到大排序,相鄰2個元素間有個空格,末尾無空格有個回車。

樣例輸入
1 3 1 3 2
樣例輸出
1 2 3


#include<stdio.h>
void swap(int a[],int low,int high)
{
    
int temp=a[low];
    a[low]
=a[high];
    a[high]
=temp;
}

int partition(int a[],int low,int high)
{
    
int pivotkey=a[low];
    
while(low<high)
    {
        
while(low<high && a[high]>=pivotkey)
            high
--;
        swap(a,low,high);
        
while(low<high && a[low]<=pivotkey)
            low
++;
        swap(a,low,high);
    }
    
return low;
}

void qsort(int a[],int low,int high)
{
    
int pivot;
    
if(low<high)
    {
        pivot
=partition(a,low,high);
        qsort(a,low,pivot
-1);
        qsort(a,pivot
+1,high);
    }
}


int main()
{
    
int n,m,i,a[102];
    scanf(
"%d",&n);
    
while(n--)
    {
        scanf(
"%d",&m);
        
for(i=0;i<m;i++)
        {
            scanf(
"%d",&a[i]);
        }

        qsort(a,
0,m-1);

            
        
for(i=0;i<m;i++)
        {
            printf(
"%d ",a[i]);
        }
        printf(
"\n");

    }

    
return 0;
}

posted @ 2012-05-08 17:11 hoshelly 閱讀(139) | 評論 (0)編輯 收藏

僅列出標題
共12頁: First 3 4 5 6 7 8 9 10 11 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99国产精品99久久久久久粉嫩| 欧美午夜在线观看| 最新高清无码专区| 欧美va亚洲va香蕉在线| 猫咪成人在线观看| 亚洲国产合集| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲欧美国产另类| 欧美一区二粉嫩精品国产一线天| 午夜精品成人在线| 久久精品国产999大香线蕉| 久久久久一区二区三区| 欧美成人在线免费视频| 欧美日韩一二区| 国产精品专区h在线观看| 国产一区二区三区视频在线观看| 亚洲国产经典视频| 亚洲免费在线观看| 欧美bbbxxxxx| 亚洲一区二区高清| 美女视频网站黄色亚洲| 欧美日韩综合视频网址| 国产一区二区中文| 一本不卡影院| 久久中文精品| 一区二区三区精品国产| 免费h精品视频在线播放| 国产精品久久久久久久一区探花| 在线一区二区三区四区| 午夜欧美不卡精品aaaaa| 久久久久久久性| 国产精品海角社区在线观看| 激情文学一区| 小黄鸭精品aⅴ导航网站入口| 日韩亚洲一区二区| 久久av红桃一区二区小说| 亚洲人精品午夜| 久久久久久国产精品mv| 国产精品麻豆va在线播放| 亚洲激情啪啪| 模特精品裸拍一区| 亚洲午夜精品17c| 六十路精品视频| 亚洲欧美日韩一区| 欧美日韩成人综合| 亚洲欧洲视频在线| 久久综合给合久久狠狠狠97色69| 亚洲伦理一区| 欧美精品一区二区视频| 91久久久在线| 亚洲高清一区二| 麻豆精品在线视频| 亚洲高清av| 欧美成人激情视频| 久久久噜噜噜久噜久久| 狠狠色丁香婷婷综合影院| 欧美在线视屏| 欧美在线不卡视频| 狠狠色狠狠色综合日日五| 欧美在线视频免费播放| 欧美一级视频免费在线观看| 国产精品网站一区| 欧美一级理论性理论a| 亚洲图片在线观看| 国产精品一级二级三级| 欧美亚洲日本一区| 午夜精品久久久久99热蜜桃导演| 国产女主播视频一区二区| 欧美一区三区三区高中清蜜桃| 亚洲免费伊人电影在线观看av| 国产精品天天摸av网| 久久精品亚洲一区二区| 久久精品色图| 欧美黄色一区| av成人黄色| 亚洲视频1区2区| 国产一区二区0| 久久综合九色综合网站| 蜜乳av另类精品一区二区| 亚洲久久视频| 亚洲手机成人高清视频| 国产一区 二区 三区一级| 麻豆成人综合网| 欧美激情一区二区三区蜜桃视频| 在线亚洲自拍| 午夜在线电影亚洲一区| 18成人免费观看视频| 亚洲人精品午夜| 国产偷自视频区视频一区二区 | 亚洲一区二区三区四区中文| 在线视频欧美日韩精品| 国产欧美日韩综合精品二区| 欧美电影免费观看高清| 欧美日韩中文精品| 美女国产一区| 国产精品九九久久久久久久| 美女国内精品自产拍在线播放| 欧美片在线播放| 久久久青草青青国产亚洲免观| 欧美华人在线视频| 久久精品中文字幕免费mv| 免费亚洲电影在线| 国产一区二区精品| 欧美国产日韩xxxxx| 欧美日韩一本到| 麻豆亚洲精品| 国产一区二区av| 亚洲一区国产一区| 日韩一级免费观看| 久久久久国产精品一区二区| 亚洲欧洲99久久| 欧美黑人国产人伦爽爽爽| 久久久久久亚洲综合影院红桃| 欧美日韩在线精品| 亚洲国产一区二区三区青草影视| 一区在线播放视频| 亚洲欧美在线播放| 亚洲欧美乱综合| 欧美国产精品久久| 欧美成人有码| 国产在线一区二区三区四区 | 一本色道精品久久一区二区三区| 国模精品一区二区三区| 亚洲一区久久| 亚洲午夜日本在线观看| 欧美日本国产一区| 欧美成人首页| 韩国视频理论视频久久| 亚洲欧美在线高清| 久久er99精品| 国产欧美日韩| 欧美亚洲综合在线| 久久精品视频在线播放| 国产视频在线观看一区二区| 亚洲欧美制服另类日韩| 欧美一激情一区二区三区| 国产精品一区久久久| 亚洲综合色丁香婷婷六月图片| 亚洲你懂的在线视频| 国产精品www994| 99精品视频免费全部在线| 亚洲网站在线播放| 欧美性感一类影片在线播放| 这里是久久伊人| 欧美在线观看视频一区二区三区| 国产精品久久久999| 亚洲女ⅴideoshd黑人| 久久成人18免费观看| 韩国一区二区在线观看| 久久蜜桃资源一区二区老牛| 亚洲成在线观看| 欧美日韩精品久久| 日韩视频在线观看| 亚洲图片在区色| 国产毛片一区二区| 欧美影院久久久| 欧美激情第9页| 亚洲视频免费观看| 国产乱理伦片在线观看夜一区| 久久精品免费观看| 亚洲三级视频| 欧美一区二区三区久久精品茉莉花 | 亚洲乱码国产乱码精品精| 欧美日韩精品伦理作品在线免费观看| 亚洲人成欧美中文字幕| 亚洲一区二区少妇| 国产亚洲aⅴaaaaaa毛片| 麻豆成人av| 一区二区三区不卡视频在线观看| 欧美影院成年免费版| 亚洲黄色影院| 国产精品久久7| 免费一级欧美在线大片| 一区二区动漫| 免费在线亚洲欧美| 亚洲欧美日韩第一区| 亚洲电影下载| 国产目拍亚洲精品99久久精品| 欧美.www| 午夜亚洲激情| 一本一本a久久| 亚洲高清视频在线| 久久精品国产亚洲a| 99亚洲一区二区| 亚洲福利专区| 伊人夜夜躁av伊人久久| 国产精品久久久久久久久久久久久| 久久婷婷影院| 久久激情视频| 亚洲欧美日韩在线综合| 亚洲人体1000| 亚洲丰满少妇videoshd| 久久综合久久综合久久| 欧美亚洲网站| 在线视频欧美一区| 亚洲精品乱码久久久久久黑人 | 国产噜噜噜噜噜久久久久久久久| 欧美另类极品videosbest最新版本| 亚洲一区亚洲| 亚洲视频观看|