资源描述
数 组 是 一 组 有 序 数 据 的 集 合 , 数 组 中 每 一个 元 素 的 类 型 相 同 。 用 数 组 名 和 下 标 来 唯 一 确定 数 组 中 的 元 素 。6.1 1维 数 组 的 定 义 和 引 用6.2 2维 数 组 的 定 义 和 引 用6.3 字 符 数 组 与 字 符 串第 6章 数 组 6.1 1维 数 组 的 定 义 和 引 用 例 使 数 组 元 素 a0 a9的 值 为 0 9, 然 后 逆 序 输 出 。#include “stdio.h”void main() int i,a10; for (i=0;i=0; i-) printf(%d ,ai); 运 行 输 出 : 9 8 7 6 5 4 3 2 1 0 3、 一 维 数 组 的 初 始 化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, 不 允 许 简 写 。例 、 static int a10 = 0,0,0,0,0,0,0,0,0,0; 不 能 简 写 为 : static int a10 = 0*10; 4、 如 果 全 部 元 素 均 指 定 初 值 , 定 义 中 可 以 省 略 元 素的 个 数 ,例 、 static int a = 1,2,3,4,5; 不 足 之 处 :仍 然 要 进 行 9轮 冒 泡 操 作 , 尽 管不 会 有 任 何 数 据 交 换 操 作 。 . 行 数 列 数014523 01234567.20212223 c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113c120c121c122c1236.2 2维 数 组 的 定 义 和 引 用 例 有 一 个 3 4的 矩 阵 , 要 求 编 程 序 以 求 出 其 中 值 最 大 的 那个 元 素 的 值 及 其 所 在 的 行 号 和 列 号 。算 法 :首 先 把 第 一 个 元 素 a00作 为临 时 最 大 值 max, 然 后 把 临 时 最大 值 max与 每 一 个 元 素 aij进行 比 较 , 若 aijmax,把 aij作 为 新 的 临 时 最 大 值 ,并 记 录 下 其 下 标 i和 j。当 全 部 元 素 比 较 完 后 ,max是 整 个 矩 阵 全 部 元 素 的 最 大 值 。 main() int 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+) /* 用 两 重 循 环 遍 历 全 部 元 素 */ for(j=0; j max ) max = aij; row = i; colum = j; printf(max=%d, row=%d, colum=%dn,max,row,colum); 6.3 字 符 数 组 与 字 符 串一 、 定 义 字 符 数 组例 、char c10; /* 定 义 c为 字 符 数 组 , 包 含 10个 元 素 */c0=I; c1= ; c2=a; c3=m; c4= ;c5=h; c6=a; c7=p; c8=p; c9=y; 注 意 :字 符 型 与 整 型 可 以 通 用 , 但 有 区 别 :char c10; /* 在 内 存 中 占 10字 节 */int c10; /* 在 内 存 中 占 20字 节 */ 二 、 字 符 数 组 的 初 始 化1、 逐 个 字 符 赋 初 值static char c10 = I, ,a,m, ,h,a,p,p,y;static char c10 = c, ,p,r,o,g,r,a,m; /* 9 */static char c = I, ,a,m, ,h,a,p,p,y; 注 意 : 初 始 化 数 据 少 于 数 组 长 度 ,多 余 元 素 自 动 为 “ 空 ” ( 0,二 进 制 0) 。 指 定 初 值 时 , 若 未 指 定 数 组 长 度 , 则 长 度 等 于 初 值 个 数 。 花 括 号 中 字 符 的 个 数 数 组 长 度 , 语 法 错 以 字 符 串 常 量 赋 初 值static char c11 = I am happy;static char c11 = I am happy;注 意 : 数 组 长 度 字 符 串 中 的 字 符 数 若 数 组 长 度 字 符 串 中 的 字 符 数 , 则 出 错若 数 组 长 度 字 符 串 中 的 字 符 数 , 则 后 加 数 组 长 度 可 省 略I a m h a p p y 0 static char c = I am happy;static char c = I, ,a,m, ,h,a,p,p,y;这 两 种 初 始 化 不 等 价 为 何 ?字 符 数 组 本 身 不 要 求 最 后 是 而 字 符 串 常 量 一 定 最 后 是 三 、 引 用引 用 一 个 元 素 , 得 到 一 个 字 符 。例 : c2 四 、 字 符 数 组 的 输 入 输 出1、 用 “ %c” 格 式 符 逐 个 输 入 输 出 。2、 用 “ %s” 格 式 符 按 字 符 串 输 入 输 出注 意 :%c 输 出 , 常 用 于 字 符 数 组 中 无 标 记 的 情 况%s 输 出 , 用 于 字 符 数 组 中 有 标 记 的 情 况。 void main() char c10; int i ; for( i =0; i10; i+ ) scanf(“%c”, /* ci=getchar();*/ for( i =0; i10; i+ ) printf(“%c”, ci); /*putchar(ci);*/ scanf(“%s”, c);printf(“%s”, c); 例 输 出 一 个 钻 石 图 形 。 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”; printf(“%s”,diamond); 案 例 字 符 数 组 的 整 体 输 入 与 输 出 。 /*功 能 : 将 2维 字 符 数 组 进 行 初 始 化 , 并 在 屏 幕 上 输 出 */void main() int i; char name59= 张 三 山 , 李 四 季 , 王 五 魁 , 刘 六 顺 , 赵 七 巧 ; for(i=0;i5;i+) printf(n%st,namei); /*namei代 表 该 行 数 组 元 素 的 首 地 址 */ 时 , 常 用 的 字 符 串 处 理 函 数 gets scanf输 入 的 字 符 串 中 可 包 含 空 格 字 符 输 入 的 字 符 串 中 不 可 包 含 空 格 字 符 只 能 输 入 一 个 字 符 串 可 连 续 输 入 多 个 字 符 串 ( 使 用 %s%s)不 可 限 定 字 符 串 的 长 度 可 限 定 字 符 串 的 长 度 ( 使 用 %ns)遇 到 回 车 符 结 束 遇 到 空 格 符 或 回 车 符 结 束 功 能 : 向 显 示 器 输 出 字 符 串 ( 输 出 完 , 换 行 )说 明 : 如 果 是 字 符 数 组 , 则 必 须 以 0结 束 格 式 : strlen(字 符 串 地 址 ) 功 能 : 计 算 字 符 串 长 度返 值 : 返 回 字 符 串 实 际 长 度 , 不 包 括 0在 内 0 将 字 符 串 中 大 写 字 母 转 换 成 小 写 strlwr()函 数( 1) 调 用 方 式 : strlwr(字 符 串 )( 2) 函 数 功 能 : 将 字 符 串 中 的 大 写 字 母 转 换 成 小 写 , 其 它字 符 ( 包 括 小 写 字 母 和 非 字 母 字 符 ) 不 转 换 。将 字 符 串 中 小 写 字 母 转 换 成 大 写 strupr()函 数( 1) 调 用 方 式 : strupr(字 符 串 )( 2) 函 数 功 能 : 将 字 符 串 中 小 写 字 母 转 换 成 大 写 , 其 它 字符 ( 包 括 大 写 字 母 和 非 字 母 字 符 ) 不 转 换 。 常 见 错 误int a10,i ;for(i=1;i=10;i+).下 标 越 界 上 机 :教 材 : P168-169, 1, 7, 8, 9 实 验 : P144, 7 8 1 63 5 74 9 2
展开阅读全文