




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、11.1.掌握一維數組、二維數組、字符掌握一維數組、二維數組、字符數組的定義和引用數組的定義和引用 2.2.熟悉常用的字符串處理函數熟悉常用的字符串處理函數3.3.簡單的編程應用簡單的編程應用主要任務:主要任務:2022-5-2822022-5-2832022-5-284 構造類型的每一個分量是一個變量,它可以是一個構造類型的每一個分量是一個變量,它可以是一個簡單類型或者構造類型。簡單類型或者構造類型。 構造類型分量的使用方法與簡單變量相同。構造類型分量的使用方法與簡單變量相同。 構造類型的分量占用相鄰的存儲空間。構造類型的分量占用相鄰的存儲空間。 對于構造類型來說,重點是訪問其分量的方法。對
2、于構造類型來說,重點是訪問其分量的方法。 構造類型的每一個分量是一個變量,它可以是一個構造類型的每一個分量是一個變量,它可以是一個簡單類型或者構造類型。簡單類型或者構造類型。 構造類型分量的使用方法與簡單變量相同。構造類型分量的使用方法與簡單變量相同。 構造類型的分量占用相鄰的存儲空間。構造類型的分量占用相鄰的存儲空間。 對于構造類型來說,重點是訪問其分量的方法。對于構造類型來說,重點是訪問其分量的方法。2022-5-285隨溫度而改變的實驗數據隨溫度而改變的實驗數據 按學號排列的成績表按學號排列的成績表 線性方程組的線性方程組的m m* *n n系數矩陣系數矩陣u都是由若干個分量組成都是由若
3、干個分量組成u數據分量都是同一類型(可取任何數據類型)數據分量都是同一類型(可取任何數據類型)u這些分量是按一定順序排列的這些分量是按一定順序排列的2022-5-286 用一符號名(數組名)來表示這一組數用一符號名(數組名)來表示這一組數 用數組名后跟下標來唯一確定數組中的元素用數組名后跟下標來唯一確定數組中的元素 數組的首地址、數組元素的類型和個數數組的首地址、數組元素的類型和個數2022-5-287(D是符號常量是符號常量) 數組名命名規(guī)則遵循數組名命名規(guī)則遵循C C語言標識符的命名規(guī)則語言標識符的命名規(guī)則 數組名后只能用數組名后只能用括起來的括起來的表達式(常量或符號常量)表達式(常量或
4、符號常量) 常量表達式的值確定數組元素的個數(尺寸)常量表達式的值確定數組元素的個數(尺寸) 起始下標從起始下標從 開始,最大下標值為數組元素個數減一開始,最大下標值為數組元素個數減一2022-5-2882022-5-28910001002100410061008a0a1a2a3a4如:如:int a5,在內存中的存儲為,在內存中的存儲為l 保存數組所需內存量與數組元素的基本類型和數組保存數組所需內存量與數組元素的基本類型和數組大小有關大小有關總字節(jié)數總字節(jié)數= =sizeofsizeof(基本類型)(基本類型)* *數組元素個數數組元素個數下標為下標為i i元素地址元素地址= =第第1 1元
5、素地址元素地址+i+i* *sizeofsizeof( (基本類型基本類型) )2022-5-28102022-5-28119876543210數組元素下標數組元素下標常用循環(huán)變量常用循環(huán)變量來控制來控制2022-5-2812int a4=1,2,3,4;a0=1, a1=2, a2=3, a3=4int b5=1,2;b0=1, b1=2, b2=b3=b4=0int c =1,2,32022-5-2813int a5=0,1,2,3,4,5;2022-5-281412nn 2n 1F1F1FFF(n3) f1=1,f2=1 for i=1 to 20 f1=f1+f2 f2=f2+f1輸出
6、輸出f1,f2#includevoid main() int i; long int f1,f2; f1=1; f2=1; for(i=1;i=20;i+) printf(%12ld %12ld,f1,f2); if(i%2=0) printf(n); f1=f1+f2; f2=f2+f1; #includevoid main() int i; long int f40=1,1; for(i=2;i40;i+) fi=fi-2+fi-1; for(i=0;i40;i+) if(i%4=0) printf(n); printf(%12d,fi); printf(n); fi=fi-2+fi-1
7、2=i=402022-5-2815反復掃描輸入序列,比較兩個相鄰元素,若發(fā)現(xiàn)反復掃描輸入序列,比較兩個相鄰元素,若發(fā)現(xiàn)他們構成逆序,就將其換位。他們構成逆序,就將其換位。 外循環(huán)外循環(huán)j j控制比較趟數(控制比較趟數(n-1n-1趟)趟) 內循環(huán)內循環(huán)i i控制一趟比較的次數(控制一趟比較的次數(n-jn-j次)次)2022-5-2816(1) 如果改變掃描如果改變掃描方向方向(自底向自底向上上),程序怎,程序怎樣改?樣改?(2) 此程序是否還此程序是否還有可以改進的有可以改進的地方?地方?#include #define N 10void main() int aN; int i,j,t;
8、printf(Input data:); for(i=0;iN;i+) scanf(%d,&ai); for(i=1;i=N-1;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; printf(Output data:n); for(i=0;iN;i+) printf(%3d,ai);printf(n);2022-5-2817從從10個數中選出最小個數中選出最小的數與的數與a0對換;再從對換;再從剩下的剩下的9個數中選出最個數中選出最小的數與小的數與a1對對換;換; 共應選擇共應選擇9輪輪課后完成程序編寫。課后完成程序編寫。2022-5-2818202
9、2-5-2819 若用簡單變量做,則需若用簡單變量做,則需8個變量分別存放個變量分別存放8個候選人的票數個候選人的票數 讀入一張選票,則進行判斷,累加(即讀入一張選票,則進行判斷,累加(即8條這樣的語句)條這樣的語句)用數組進行統(tǒng)計用數組進行統(tǒng)計定義一個數組定義一個數組n9,n1中存放中存放1號的票數,號的票數,n2中存放中存放2號的票號的票數,數,n8中存放中存放8號的票數號的票數可發(fā)現(xiàn)數組元素的可發(fā)現(xiàn)數組元素的下標下標與要統(tǒng)計的候選人的與要統(tǒng)計的候選人的編號編號相吻合,故可直相吻合,故可直接采用:接采用:nx=nx+12022-5-2820#includevoid main() int x
10、, n9=0; printf(input No.:); scanf(%d,&x); while(x) nx+=1; printf(input No.:); scanf(%d,&x); for(x=1;x=8;x+) printf(tNo.%d=%d,x,nx); if (x%4=0) printf(n); 利用數組作為一組計利用數組作為一組計數器,通過將數器,通過將統(tǒng)計對統(tǒng)計對象的值象的值與存放該統(tǒng)計與存放該統(tǒng)計值的值的下標下標聯(lián)系起來,聯(lián)系起來,這樣既可以使程序簡這樣既可以使程序簡潔,又提高程序效率。潔,又提高程序效率。2022-5-28212022-5-2822int a3
11、4 ;注意注意:: float x234;2022-5-2823int a34;aa0-a00 a01 a02 a03a1-a10 a11 a12 a13a2-a20 a21 a22 a23可以理解為:可以理解為:int a04,a14,a24把把a0,a1,a2看作一維數組名看作一維數組名2022-5-282410001004100810121016a00a01a02a10a111020a12如:如:float a23,在內存中的存儲為,在內存中的存儲為:總字節(jié)數總字節(jié)數= =sizeofsizeof( (基本類型基本類型) )* *第一維大小第一維大小* *第二維大小第二維大小2022-5
12、-2825如:如:int a24, b53; a2-12*2-1 (下標可以是整型表達式)(下標可以是整型表達式) b12=a13/2int a34;a00a232022-5-2826/按存放順序賦按存放順序賦/按行賦按行賦 int x23=6,2,5,0,6 int x23=,1,22022-5-28272022-5-2828一般一般二維數組的處理用二重循環(huán)二維數組的處理用二重循環(huán) 用循環(huán)變量的值控制數組元素的下標用循環(huán)變量的值控制數組元素的下標#includevoid main() int a33,i,j; for(i=0;i=2;i+) for(j=0;j=2;j+) scanf(%d,
13、&aij); for(i=0;i=2;i+) for(j=0;j=2;j+) printf(%5d,aij); printf(n); scanf(%d,&aij); for(i=0;i=2;i+)printf(%5d,aii); for(i=0;i=2;i+) for(j=0;j=2;j+) printf(%5d,aij); printf(“n”); 2022-5-2829123a=45614b= 2536思路思路:用二重循環(huán)進行轉置用二重循環(huán)進行轉置 bjibji=aijaij for( i = 0; i=1; i+) for( j = 0; j=2; j+) b j i =
14、a i j ;123a456789147a258369思路思路:對稱于主對角線的元素對稱于主對角線的元素進行兩兩交換進行兩兩交換 for( i=0; i3; i+) for( j=0; j=字符個數字符個數+12022-5-2836 逐個字符數組元素輸入輸出:用逐個字符數組元素輸入輸出:用%c格式符描述格式符描述如:如:scanf(“%c”,&ai); printf(“%c%c%c”,b0,b2,b3); 整個字符串(數組)輸入輸出:用整個字符串(數組)輸入輸出:用%s格式符描述格式符描述如:如:char a =“china”; scanf(“%s”,a); printf(“%s”,a
15、);2022-5-28372022-5-2838用用%s%s輸入時,遇輸入時,遇空格空格或或回車回車便認為一個字符串結束便認為一個字符串結束how0are0you0?s15s25s352022-5-2839#includevoid main( ) char c110,c226; int i; for (i=0; i10; i+) c1i=i+0; for (i=0; i26; i+) c2i=i+A; for (i=0; i10; i+) printf(%c ,c1i); printf(n); for (i=0; i26; i+) printf(%c ,c2i); printf(n); 202
16、2-5-2840puts(str); 等價于等價于 printf(“%sn”,str);puts(“ok!”); 等價于等價于 printf(“%sn”,”ok!”); 或或 printf(“ok!n”);2022-5-2841puts(gets(s);2022-5-2842 拷貝時連同拷貝時連同0一起拷貝一起拷貝 字符數組字符數組1的長度的長度字符數組字符數組2/字符串的長度字符串的長度 不能把字符串或字符數組直接賦給一個字符數組不能把字符串或字符數組直接賦給一個字符數組如:如:char str6; str=“china”; (strstr表示一個地址)表示一個地址) str0=c; str
17、1=h; strcpy(str,”china”); 2022-5-2843#include#includestring.hvoid main() char s140,s210,s310; gets(s1); gets(s2); gets(s3); strcat(s1,s2); strcat(s1,s3); puts(s1); this is a bluepenthis isa bluepen思考思考:對字符數組對字符數組1 1的長度有何限制?的長度有何限制?2022-5-2844char c;c=A+B;char c10;c=“A”+”B”;char c10;strcpy(c,“A”+”B”)
18、;2022-5-28452022-5-2846abcde0str1abcde0str2abcabcde0bcd0Abcde0str1str2str1str22022-5-2847注意:注意: 對兩個字符串的比較,不能用以下形式對兩個字符串的比較,不能用以下形式 str1=str2; str1str2; 或或 str10或或=0或或0來判斷來判斷2022-5-28482022-5-2849讀程序,寫出輸出結果。讀程序,寫出輸出結果。輸入輸入:How are you?2022-5-2850#includevoid main() char s180,s280; int i=0,j=0; puts(input two strings:); gets(s1); gets(s2); while(s1i!=0) i+; while(s1i+=s2j+)!=0); printf(result: %sn,s1); input two strings:ab cdefgresult: ab cdefg2022-5-2851 有序數列中的元素:有序數列中的元素:a0a8,插入數,插入數k k從從a0開始依次和各元素比較,如果開始依次和各元素比較,如果kai,則讓則讓k占用占用ai的位置,后面的數依次往后挪,的位置,后面的數依次往后挪,并跳出循環(huán),轉到并跳出循環(huán),轉到 a9=k
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)市場推廣資源共享合同梳理
- 發(fā)傳單合同協(xié)議書
- 股份制企業(yè)合同審查文書
- 投標知識培訓課件下載
- 《生產環(huán)節(jié)的損耗危機》課件
- 《普校數字化檔案管理》課件
- 《碧桂園精準測量》課件
- Why We Hate-Understanding the Roots of Human Conflict(Chapter 5)英漢翻譯實踐報告
- 駕馭電動汽車浪潮
- 合同范例證件
- 初一家長會課件96108
- 《企業(yè)文化概述》課件
- 村莊破損道路修繕方案
- 2024年廣東省深圳市中考英語試題含解析
- GB/T 16288-2024塑料制品的標志
- 麻風病防治知識課件
- 《生態(tài)系統(tǒng)的能量流動》(第1課時)公開課教案
- 中國舞課件下載
- 高中音樂第二篇:《黃河大合唱》教案
- 民生銀行在線測評真題
- 2024-2030年墨西哥五硫化二磷市場前景分析
評論
0/150
提交評論