《中國科技大學(xué) C語言講義7》由會(huì)員分享,可在線閱讀,更多相關(guān)《中國科技大學(xué) C語言講義7(52頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2021/6/16 1 數(shù) 組 是 一 組 有 序 數(shù) 據(jù) 的 集 合 , 數(shù) 組 中 每 一個(gè) 元 素 的 類 型 相 同 。 用 數(shù) 組 名 和 下 標(biāo) 來 唯 一 確定 數(shù) 組 中 的 元 素 。6.1 1維 數(shù) 組 的 定 義 和 引 用6.2 2維 數(shù) 組 的 定 義 和 引 用6.3 字 符 數(shù) 組 與 字 符 串第 6章 數(shù) 組 2021/6/16 2 6.1 1維 數(shù) 組 的 定 義 和 引 用 2021/6/16 3 2021/6/16 4 2021/6/16 5 例 使 數(shù) 組 元 素 a0 a9的 值 為 0 9, 然 后 逆 序 輸 出 。#include “stdio
2、.h”void main() int i,a10; for (i=0;i=0; i-) printf(%d ,ai); 運(yùn) 行 輸 出 : 9 8 7 6 5 4 3 2 1 0 2021/6/16 6 3、 一 維 數(shù) 組 的 初 始 化1、 一 般 初 始 化 ,例 、 static int a10 = 0,1,2,3,4,5,6,7,8,9; int array10 = 1,2,3,4,5,6,7,8,9,10; 2、 部 分 元 素 初 始 化 ,例 、 static int a10 = 0,1,2,3,4;3、 全 部 元 素 均 初 始 化 為 0, 不 允 許 簡(jiǎn) 寫 。例 、
3、static int a10 = 0,0,0,0,0,0,0,0,0,0; 不 能 簡(jiǎn) 寫 為 : static int a10 = 0*10; 4、 如 果 全 部 元 素 均 指 定 初 值 , 定 義 中 可 以 省 略 元 素的 個(gè) 數(shù) ,例 、 static int a = 1,2,3,4,5; 2021/6/16 7 2021/6/16 8 2021/6/16 9 2021/6/16 10 2021/6/16 11 2021/6/16 12 不 足 之 處 :仍 然 要 進(jìn) 行 9輪 冒 泡 操 作 , 盡 管不 會(huì) 有 任 何 數(shù) 據(jù) 交 換 操 作 。 2021/6/16 13
4、 2021/6/16 14 2021/6/16 15 2021/6/16 16 2021/6/16 17. 2021/6/16 18 行 數(shù) 列 數(shù)014 523 01234567. 20212223 c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103 c110c111c112c113c120c121c122c1236.2 2維 數(shù) 組 的 定 義 和 引 用 2021/6/16 19 2021/6/16 20 2021/6/16 21 2021/6/16 22 2021/6/16 23 2021/6/16 24 2
5、021/6/16 25 例 有 一 個(gè) 3 4的 矩 陣 , 要 求 編 程 序 以 求 出 其 中 值 最 大 的 那個(gè) 元 素 的 值 及 其 所 在 的 行 號(hào) 和 列 號(hào) 。算 法 :首 先 把 第 一 個(gè) 元 素 a00作 為臨 時(shí) 最 大 值 max, 然 后 把 臨 時(shí) 最大 值 max與 每 一 個(gè) 元 素 aij進(jìn)行 比 較 , 若 aijmax,把 aij作 為 新 的 臨 時(shí) 最 大 值 ,并 記 錄 下 其 下 標(biāo) i和 j。當(dāng) 全 部 元 素 比 較 完 后 ,max是 整 個(gè) 矩 陣 全 部 元 素 的 最 大 值 。 2021/6/16 26 main() int
6、 i,j,row=0,colum=0,max; static int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max = a00; for(i=0; i=2; i+) /* 用 兩 重 循 環(huán) 遍 歷 全 部 元 素 */ for(j=0; j max ) max = aij; row = i; colum = j; printf(max=%d, row=%d, colum=%dn,max,row,colum); 2021/6/16 27 6.3 字 符 數(shù) 組 與 字 符 串一 、 定 義 字 符 數(shù) 組例 、char c10; /* 定 義 c為 字 符 數(shù) 組
7、, 包 含 10個(gè) 元 素 */c0=I; c1= ; c2=a; c3=m; c4= ;c5=h; c6=a; c7=p; c8=p; c9=y; 注 意 :字 符 型 與 整 型 可 以 通 用 , 但 有 區(qū) 別 :char c10; /* 在 內(nèi) 存 中 占 10字 節(jié) */int c10; /* 在 內(nèi) 存 中 占 20字 節(jié) */ 2021/6/16 28 二 、 字 符 數(shù) 組 的 初 始 化1、 逐 個(gè) 字 符 賦 初 值static char c10 = I, ,a,m, ,h,a,p,p,y;static char c10 = c, ,p,r,o,g,r,a,m; /* 9
8、 */static char c = I, ,a,m, ,h,a,p,p,y; 注 意 : 初 始 化 數(shù) 據(jù) 少 于 數(shù) 組 長(zhǎng) 度 ,多 余 元 素 自 動(dòng) 為 “ 空 ” ( 0,二 進(jìn) 制 0) 。 指 定 初 值 時(shí) , 若 未 指 定 數(shù) 組 長(zhǎng) 度 , 則 長(zhǎng) 度 等 于 初 值 個(gè) 數(shù) 。 花 括 號(hào) 中 字 符 的 個(gè) 數(shù) 數(shù) 組 長(zhǎng) 度 , 語 法 錯(cuò) 2021/6/16 29 以 字 符 串 常 量 賦 初 值static char c11 = I am happy;static char c11 = I am happy;注 意 : 數(shù) 組 長(zhǎng) 度 字 符 串 中 的
9、字 符 數(shù) 若 數(shù) 組 長(zhǎng) 度 字 符 串 中 的 字 符 數(shù) , 則 出 錯(cuò)若 數(shù) 組 長(zhǎng) 度 字 符 串 中 的 字 符 數(shù) , 則 后 加 數(shù) 組 長(zhǎng) 度 可 省 略I a m h a p p y 0 2021/6/16 30 static char c = I am happy;static char c = I, ,a,m, ,h,a,p,p,y;這 兩 種 初 始 化 不 等 價(jià) 為 何 ?字 符 數(shù) 組 本 身 不 要 求 最 后 是 而 字 符 串 常 量 一 定 最 后 是 2021/6/16 31 三 、 引 用引 用 一 個(gè) 元 素 , 得 到 一 個(gè) 字 符 。例 :
10、c2 2021/6/16 32 四 、 字 符 數(shù) 組 的 輸 入 輸 出1、 用 “ %c” 格 式 符 逐 個(gè) 輸 入 輸 出 。2、 用 “ %s” 格 式 符 按 字 符 串 輸 入 輸 出注 意 :%c 輸 出 , 常 用 于 字 符 數(shù) 組 中 無 標(biāo) 記 的 情 況%s 輸 出 , 用 于 字 符 數(shù) 組 中 有 標(biāo) 記 的 情 況。 2021/6/16 33 void main() char c10; int i ; for( i =0; i10; i+ ) scanf(“%c”, /* ci=getchar();*/ for( i =0; i10; i+ ) printf(“
11、%c”, ci); /*putchar(ci);*/ scanf(“%s”, c);printf(“%s”, c); 2021/6/16 34 例 輸 出 一 個(gè) 鉆 石 圖 形 。 void main() static char diamond5= , ,*, ,*, ,*, *, , , ,*, ,*, ,*, , ,* ; int i, j; for(i=0;i5;i+) for(j=0;j5;j+) printf(%c,diamondij); printf(n); void main() static char diamond= “ * n * * n * *n * * n * n”;
12、 printf(“%s”,diamond); 2021/6/16 35 案 例 字 符 數(shù) 組 的 整 體 輸 入 與 輸 出 。 /*功 能 : 將 2維 字 符 數(shù) 組 進(jìn) 行 初 始 化 , 并 在 屏 幕 上 輸 出 */void main() int i; char name59= 張 三 山 , 李 四 季 , 王 五 魁 , 劉 六 順 , 趙 七 巧 ; for(i=0;i5;i+) printf(n%st,namei); /*namei代 表 該 行 數(shù) 組 元 素 的 首 地 址 */ 2021/6/16 36 時(shí) , 常 用 的 字 符 串 處 理 函 數(shù) 2021/6/
13、16 37 gets scanf輸 入 的 字 符 串 中 可 包 含 空 格 字 符 輸 入 的 字 符 串 中 不 可 包 含 空 格 字 符 只 能 輸 入 一 個(gè) 字 符 串 可 連 續(xù) 輸 入 多 個(gè) 字 符 串 ( 使 用 %s%s)不 可 限 定 字 符 串 的 長(zhǎng) 度 可 限 定 字 符 串 的 長(zhǎng) 度 ( 使 用 %ns)遇 到 回 車 符 結(jié) 束 遇 到 空 格 符 或 回 車 符 結(jié) 束 2021/6/16 38 功 能 : 向 顯 示 器 輸 出 字 符 串 ( 輸 出 完 , 換 行 )說 明 : 如 果 是 字 符 數(shù) 組 , 則 必 須 以 0結(jié) 束 2021/6
14、/16 39 格 式 : strlen(字 符 串 地 址 ) 功 能 : 計(jì) 算 字 符 串 長(zhǎng) 度返 值 : 返 回 字 符 串 實(shí) 際 長(zhǎng) 度 , 不 包 括 0在 內(nèi) 2021/6/16 40 2021/6/16 41 0 2021/6/16 42 2021/6/16 43 將 字 符 串 中 大 寫 字 母 轉(zhuǎn) 換 成 小 寫 strlwr()函 數(shù)( 1) 調(diào) 用 方 式 : strlwr(字 符 串 )( 2) 函 數(shù) 功 能 : 將 字 符 串 中 的 大 寫 字 母 轉(zhuǎn) 換 成 小 寫 , 其 它字 符 ( 包 括 小 寫 字 母 和 非 字 母 字 符 ) 不 轉(zhuǎn) 換 。將
15、 字 符 串 中 小 寫 字 母 轉(zhuǎn) 換 成 大 寫 strupr()函 數(shù)( 1) 調(diào) 用 方 式 : strupr(字 符 串 )( 2) 函 數(shù) 功 能 : 將 字 符 串 中 小 寫 字 母 轉(zhuǎn) 換 成 大 寫 , 其 它 字符 ( 包 括 大 寫 字 母 和 非 字 母 字 符 ) 不 轉(zhuǎn) 換 。 2021/6/16 44 2021/6/16 45 2021/6/16 46 2021/6/16 47 2021/6/16 48 常 見 錯(cuò) 誤int a10,i ;for(i=1;i=10;i+).下 標(biāo) 越 界 2021/6/16 49 上 機(jī) :教 材 : P168-169, 1, 7, 8, 9 實(shí) 驗(yàn) : P144, 7 2021/6/16 50 8 1 63 5 74 9 2 2021/6/16 51 若 有 不 當(dāng) 之 處 , 請(qǐng) 指 正 , 謝 謝 !