<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

            C語言數組方法

            時間:2025-01-06 10:53:07 C語言 我要投稿

            C語言數組方法

              C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發。C語言能以簡易的方式編譯、處理低級存儲器。不知道大家都熟悉了沒有呢,下面一起去了解一下C語言數組方法吧!

              1. 輸入元素的值:

              int i,a [10];

              for ( i = 0; i < 9; i ++ );

              a[i] = i;

              (1) 正序排列: (2)倒序排列:

              for ( i = 0; i < 10; i ++) for ( i = 9; i >= 0; i -- ) printf (“%d”, a[i]);printf(“%d”, a[i]);

              2. 初始化元素的值:

              (1) 在定義時,將數組元素一次放在一對花括號里;

              eg: int a[10]={1,2,3,4,5,6,7,8,9,0};

              (2)可以只給一部分元素賦值:

              eg: int a[10]={1,3};

              (3)使數組全部元素為0:

              eg: int a[10]={0,0,0,0,0,0,0,0,0,0};或者 int a[10]={0};

              (4) 在對全部元素賦初值的時候,由于元素數已經確定,因此,可以不指定數組長度。(注:數組長度與提供初值個數不相同時,則長度不可以省略。)

              3. 巧妙地將兩個元素列在一個循環中輸出:(用for循環處理fobonacci數列); eg:int f[20]={1,1};

              for(i=2;i<20;i++)

              f[i]=f[i-1]+f[i-2];

              4. 數列Fobonacci數列核心:

              int f[20]={1,1};

              for(i=2;i<20;i++)

              f[i]=f[i-1]+f[i-2];

              5.換行操作:

              for (i=0;i<=20;i++) /*當然也可以在for循環中處理,直接將 {if (i%5= =0)printf(“ ”); if (i%5= =0)printf(“ ”);插入換行*/ Printf(“%12ld”,f[i]);

              }

              6. 起泡法:

              int a[10];

              for (j=0;j<9;j++) /*進行n-1趟比較*/

              for (i=0;i<9-j;i++) /*在j趟比較中,比較n-1次*/

              if(a[i]>a[i+i])/*由小到大排列,if (a[i]

              7. 初始化二維數組:

              分行給二維數組賦初值;

              將所有的元素都寫在一個花括號里;

              對部分元素賦值:

              1) int a[3][3]={{3},{5},{9}};只講0列元素賦值

              2) int a[3][3]={{1}, {0,6},{0,0,11}}; 對部分元素賦值,對非0元素少使用方便

              3) int a[3][3]={{1}, {5,6}}; 只對幾行元素賦值

              4) int a[3][3]={{1}, {},{9}}; 對第二行元素賦值

              對全部元素賦值可以省略一維長度:

              對部分元素賦初值,在省略一位長度時,應分行賦值:

              8. 二維數組的輸入輸出:

              輸入:直接定義

              輸出:

              for (i=0;i<=2;i++)

              {for (j=0;j<=1;j++)

              printf (“%5d”,b[i][j]);

              printf (“ ”);

              }

              9. 二維數組的行列轉換:

              b[j][i]=a[i][j];

              10. 數組中求最大值并輸出行列號:

              Eg: int i,row=0,colum=0,max;

              int a[3][4]={1,2,3,4,5,6,,7,8,9,10,11,12};

              max=a[0][0];

              for (i=0;i<=2;i++)

              for (j=0;j<=3;j++)

              if (a[i][j]>max)

              {max=a[i][j];

              row=i;

              colum=j;}

              11. 字符數組的初始化方法:

              逐個字符初始化:

              eg:char c[10]={I, , a, m, , h, a, p, p, y};

              1) 在定義字符數組時,不初始化,則數組中的各元素的之不可預料;

              2) 如果花括號中提供的初值個數(即字符個數)大于數組的長度,則按語法錯誤

              處理;

              3) 如果花括號中提供的初值個數(即字符個數)小于數組的長度,其余元素自動

              定為空字符即();

              如果提供的初值個數與數組長度相同,則在定義時可以省略數組長度; 也可以定義一個二維數組:

              eg:char diamond[5][5]={{ },{ },{ },{ },{ }}; 用字符串常量,使字符數組初始化:

              eg: char c[ ]={“I am happy”};或 char c[ ]= “I am happy”;

              12. 字符數組的輸出:

              一維: 二維:

              for (i=0;i<=11;i++) for (i=0;i<=11;i++)

              printf (“%c”,c[i]); for (i=0;i<5;i++)

              printf(“ ”);printf(“%c”,diamond[i][j]);

              13. 字符數組輸出最大值:

              eg:if (strcmp(string,str[1]>0)

              strcpy (string,str[0]>0);

              else

              strcpy (string,str[1]);

              if (strcmp (str[2],string>0)

              strcpy (string,str[2]);

              printf(“%s”,string);

              拓展閱讀:c語言的學習方法

              一、要讀就讀好書,否則不如不讀

              所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。

              大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給你程序設計應該掌握的思考方式;程序風格相當地不好,會讓你養成亂寫代碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以百度一下:)

              Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標準C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數C標準庫函數的細節,算得上是最好的標準C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標準修訂的,而《C語言參考手冊》描述的是C99標準,二者可能會有些出入,建議按照C99標準學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《Pointers on C》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書并不十分適合初學者,如果你曾經學過C語言,有那么一些C語言的基礎但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。

              如果你已經啃完了一本C語言教材,想要更進一步,那么有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完并能透徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。

              切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然后再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。

              二、Unix/Linux還是Windows,這是個很大的問題

              不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如Visual Studio,而Unix程序員更加鐘愛Makefile與控制臺。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制臺操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不劃算。

              對于一個只懂得Windows基本操作、連DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習ls、cat等命令有趣,況且我們要專注于C語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等

              所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今后你一定要轉向Unix環境的。Visual C++ 6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持并不好,而Dev C++使用gcc編譯器,對C99的標準都支持良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C 2.0作為實驗環境,這是相當不可取的,原因其一是TC 2.0對C標準幾乎沒有支持,其二是TC 2.0編譯得到的程序是16位的,這對今后理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC 2.0編譯出32位程序,不過那過于復雜了)。

              等你學完一本C語言的教材,你一定要轉向Unix平臺繼續學習,幾乎所有的C語言高級教程都是基于Unix平臺的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同于Windows平臺的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格

              歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在準備向“高手”方向努力時,請先轉向Unix平臺。

              三、萬事俱備,你就是東風

              書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什么基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。

              學習C語言,必需注意每一個細節,書上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要“創造”一些例子,比如學習運算符優先級的時候,可以寫幾個相同的表達式,在不同的位置加上括號,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之后的例子,還有自己“創造”的例子,都應該仔細地歸類保存,并且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。

              例子之后就是習題了,我建議初學者把所有的習題都獨立做一遍,然后對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。

              也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到后面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清Windows的系統編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。

              仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最后將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。

              寫到最后,還有非常非常重要的一點沒有提及──代碼風格,從最開始學習就必須強迫自己模仿最優秀的代碼風格。

            【C語言數組方法】相關文章:

            c語言字符數組使用方法04-26

            c語言多維數組地址的表示方法07-31

            C語言的數組與函數02-28

            C語言數組教程02-28

            什么是C語言數組04-19

            C語言指針和數組的學習方法04-23

            C語言指針數組的概念07-19

            C語言數組是什么04-08

            C語言數組元素的查詢08-02

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院