文档详情

指针与动态数组.ppt

发布:2016-08-14约6.07千字共41页下载文档
文本预览下载声明
关键信息: 计算1分钟内跳了多少下绳; 1秒钟跳1次; 跳坏后,3秒钟后才能又开始跳; 输入、输出 示例 = 60 – 3 * 3 = 60 – 1 * 3 = 60 – 4 * 3 = 60 – 4 * 3 = 47 = 60 – 0 * 3 输入:0 输出:60 0秒 60秒 y秒 在y秒时,小朋友停止了跳绳 60下 输入:3 12 23 45 输出:51 0秒 60秒 12下 12秒 15秒 12下 26秒 23下 29秒 23下 45下 51秒 54秒 45下 y秒 在y秒时,小朋友停止了跳绳 51 = 60 – 3*3 输入:1 17 输出:57 0秒 60秒 17秒 17下 20秒 17下 y秒 在y秒时,小朋友停止了跳绳 57 = 60 – 1*3 输入:4 10 20 30 40 输出:48 0秒 60秒 10秒 10下 13秒 10下 23秒 20下 26秒 20下 36秒 30下 39秒 30下 49秒 40下 52秒 40下 y秒 在y秒时,小朋友停止了跳绳 48 = 60 – 4*3 输入:5 10 20 30 40 58 输出:48 0秒 60秒 10秒 10下 13秒 10下 23秒 20下 26秒 20下 36秒 30下 39秒 30下 49秒 40下 52秒 40下 70秒 58下 73秒 58下 48 = 60 – 4*3 输入:6 10 20 30 40 47 60 输出:47 0秒 60秒 10秒 10下 13秒 10下 23秒 20下 26秒 20下 36秒 30下 39秒 30下 49秒 40下 52秒 40下 59秒 47下 62秒 47下 75秒 60下 78秒 60下 47 问题分析 0秒 60秒 Case 1 60秒 Case 2 请同学们课后思考 如何编写这个程序 下课! * 多维数组与指针 用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。 1. 多维数组元素的地址 先回顾多维数组的性质,可以认为二维数组是“数组的数组”,例 : 定义int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 则二维数组a是由3个一维数组所组成的。设二维数组的首行的首地址为2000 ,则 表 示 形 式 含义 地 址 a 二维数组名,指向一维数组a[0],即0行首地址 2000 a[0], *(a+0), *a 0行0列元素地址 2000 a+1,a[1] 1行首地址 2016 a[1],*(a+1) 1行0列元素a[1][0]的地址 2016 a[1]+2, *(a+1) +2, a[1][2] 1行2列元素a[1][2] 的地址 2024 *(a[1]+2), *(*(a+1)+2), a[1][2] 1行2列元素a[1][2]的值 元素值为13 输出二维数组有关的值 #includestdio.h #define format ″%d,%d\n″ void main() { int a[3][4]={1,3,5,7,9,11,13, 15,17,19,21,23}; printf(format,a,*a); printf(format,a[0] , *(a+0));  printf(format,a[0],a[0][0]);  printf(format,a[1],a+1);  printf(format,a[1][0],*(a+1)+0);  printf(format,a[2],*(a+2));  printf(format,a[2],a+2);  printf(format,a[1][2],*(*(a+1)+2)); } 某一次运行结果如下: 1244900,1244900 (0行首地址和0行0列元素地址) 1244900,1244900 (0行0列元素地址) 1244900,1244900 (0行0首地址和0行0列元素地址) 1244916,1244916 (1行0列元素地址和1行首地址) 1244916,1244916 (1行0列元素地址) 1244932,1244932 (2行0列元素地址) 1244932,1244932 (2行首地址) 13,13 (1行2列元素的值) 上机过程中的问题 养成良好的程序书写风格 变量、函数的命名:体现其意义 if/else、swith/case、for、while等复合语句中 { }的使用 { }内代码的缩进 适当的空行
显示全部
相似文档