第七章  数 组.

Slides:



Advertisements
Similar presentations
《C语言程序设计》复习
Advertisements

电子成绩单项目实现.
计算学科的基本问题 本章首先介绍一个对问题进行抽象的典型实例——哥尼斯堡七桥问题。然后,通过“梵天塔”问题和“停机问题”分别介绍学科中的可计算问题和不可计算问题。从“梵天塔”问题再引出算法复杂性中的难解性问题、P类问题和NP类问题,证比求易算法,P=NP是否成立的问题。
“八皇后”问题 崔萌萌 吕金华.
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
计算机硕士专业基础—C语言 赵海英
第九章 指针 目录 指针与指针变量的概念 变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量
第一章 程序设计入门.
第六章 数 组 主讲教师 贾月乐 联系电话:
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
高级语言程序设计 主讲人:陈玉华.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
選擇排序法 通訊一甲 B 楊穎穆.
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
项目六 用指针优化学生成绩排名 项目要求 项目分析
C程序设计.
If … else 選擇結構 P27.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
Chap 9 结构 9.1 构建手机通讯录 9.2 结构变量 9.3 结构数组 9.4 结构指针.
Introduction to the C Programming Language
Introduction to the C Programming Language
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
Introduction to the C Programming Language
作弊是否很有诱惑性? 上堂课已经讲了 作业不一定在两个小时里都能完成 答疑没有一个人? 作弊是有记录的 心理系很多同学集体作弊,让人震惊
算法的基本概念.
1. 說明一個一維整數陣列passwd,下標範圍0至49 2. 在屏幕顯示 "Enter password"
C语言 程序设计基础与试验 刘新国、2012年秋.
期中考试成绩分布 《程序设计》-2017年秋.
多维数组与指针 用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。 1. 多维数组元素的地址 先回顾多维数组的性质,可以认为二维数组是“数组的数组”,例 : 定义int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
函 数 实验八 第24讲 C程序设计 Main() { int x,y; X=10; y=x*x+1;
第十章 指针.
第三章 数据类型、运算符与表达式.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
Java變數 2014/6/24.
C语言复习2----函数.
C 语言程序设计 程序的循环结构 电大崇信县工作站 梁海亮.
Main() { Dfas Asdfasf fasdfa } #include <stdio.h> void main( ) {
请编写程序在屏幕上打印出一个“*”? printf(”*\n”); 请编写程序在屏幕上打印四行,每行一个“*”?
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
指標
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
C程序设计.
C语言程序设计 李祥 QQ:
第2章 认识C语言 教学要点 2. 1 项目二C语言程序识读 2 .2 项目三班级成绩排名 2 .3 知识链接 返回.
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第3章 数据类型、运算符与表达式.
第二章 类型、对象、运算符和表达式.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
程序设计基础.
#include <iostream.h>
本节内容 指针类型.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
程式設計--linear search 通訊一甲 B 楊穎穆.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Q1(a) 小偉打算編寫一個程序。該程序把兩個44的表內的數字相加。表3內的數字是由表1和表2應格子內的數字相加而成。例如:
Introduction to the C Programming Language
C语言基础学习 从外行到入门.
Presentation transcript:

第七章  数 组

回顾 2-1 for 循环与 while 循环类似,属于先判断后执行 如果省略表达式2和表达式3需要在循环体内设法结束循环,否则会导致死循环

回顾 2-2 break 语句用在循环中时,可以直接终止循环,将控制转向循环后面的语句 continue 语句的作用是跳过循环体中剩余的语句而执行下一次循环 嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内

目标 重点与难点 理解为什么要使用数组 理解 C 语言中数组存储机制 熟练使用一维数组 会应用二维数组解决实际问题 深入锻炼学生的编程思想 熟练使用一维数组和二维数组解决实际问题

唉,有这么多不同主题的书。在哪里才能找到有关中国音乐的书呢? 为什么要使用数组3-1 唉,有这么多不同主题的书。在哪里才能找到有关中国音乐的书呢?

为什么要使用数组3-2 文学类 中国音乐类 计算机类 西方音乐类

为什么要使用数组3-3 数组 内存 120 65 98 4 数组的元素 容器中保 存的物品 日常生活中的容器 程序中的数组

C 语言中的数组 数组是可以在内存中连续存储多个元素的结构 Rate 数组中的所有元素必须属于相同的数据类型 1.5 3.2 0.09 45.3987 3 2 1 下标 数组元素 下标标明了元素在数组中的位置 数组名 Rate[ 4 ] 数组大小

数组类型 2-1 2-D, 3-D, 4-D 89 90 77 … 1 2 1 73 90 33 45 80 87 一维数组 多维数组 示例:学员单门课程的成绩 2-D, 3-D, 4-D 89 90 77 … 示例:学员两门课程的成绩 1 2 学号 1 73 90 33 科目 45 80 87

数组类型 2-2

datatype arrayName[size]; 声明一维数组 datatype arrayName[size]; 类型说明符 int、char、float … 数组名 常量表达式: 数组大小 int num[50]; char list_of_initials[20]; double pressure_level[6]; # define LIMIT 20 . . . int emp_codes[LIMIT];

初始化一维数组 内存 emp_code[0] emp_code[1] emp_code[2] emp_code[3] emp_code[4] 其他的初始化情况: int arr[10] = {10,9,8,7,6,5,4,3,2,1,0};  //错误!越界了 int arr[10] = {9,8,7,5}; //正确,后面的6个元素未初始化 int arr[] = {9,8,7};  //正确:元素个数为 3 int arr[]={};  //错误,到底是几个元素? 1299 1499 1699 1899 2099 int emp_code[5] = {1299,1499,1699,1899,2099}; emp_code

为一维数组动态赋值 float price[4]; printf(“Enter prices of 4 books\n”); 内存 float price[4]; printf(“Enter prices of 4 books\n”); for (i = 0;i <= 3; i++) { scanf(“%f”,&price[i]); } 12.34 price[0] price[1] price[2] price[3] 1002.10 17.5 11.12 price

一维数组示例 运行演示 Item_rate i 6 # include <stdio.h> void main() { 内存 一维数组示例 Item_rate i 35.50 6 # include <stdio.h> void main() { int i; float item_rate[5],total=0; printf("\n 请输入商品价格:"); for(i=0;i<5;i++) scanf("%f",&item_rate[i]); total=total+item_rate[i]; } printf(“\n 所有商品的合计费用:%f\n ",total); 45.8 total 23 40.7 225.0 35.50 80 运行演示 循环执行 5 次 请输入商品价格:35.50 45.8 23 40.7 80 所有商品的合计费用:225.000000

datatype arrayName[rowsize][colsize]; 二维数组 3-1 内存 datatype arrayName[rowsize][colsize]; num[0][0] num[0][1] num[1][0] num[1][1] num[2][0] num[2][1] num[3][0] num[3][1] num[0][0] num[0][1] num[1][0] num[1][1] num[2][0] num[2][1] num[3][0] num[3][1] num 为了便于理解,二维数组一般理解为几行几列的矩阵 int num[4][2]; 8*sizeof(int) 字节 4 X 2 = 8 num

二维数组 3-2 int books[4][2] = {{11, 1294},{22,450}, {33,4000}, {44,79}}; int arr[ ][3] = { {1,2,3}, {4,5,6} }; int arr[2][ ] = { {1,2,3}, {4,5,6} };  错误

二维数组 3-3 int i, j, num[4][2]; for (i = 0; i <= 3; i++) { for (j = 0; j <=1 ; j++) scanf("%d",&num[i][j]); } 第一行 第二行 第三行 第四行 第一列 第二列 (3,1) 800 (3,0) 700 (2,1) 600 (1,1) 400 (0,1) 200 (2,0) 500 (1,0) 300 (0,0) 100 行下标 列下标 num[0] [0] i j num[i][j] 100 1 200 300 400 2 500 600 3 700 800

数组应用1 #define N 10 …… for(i=0;i<N;i++) scanf("%d",&num[i]); printf("\n 请输入要查找的数:"); scanf("%d",&search); for (i=0;i<N;i++) { if (num[i]==search) break; } if(i<N) printf("\n 在数组的第 %d 个位置找到了数字 %d !\n",i+1,search); else printf("\n 没有找到!\n"); 问题描述: 输入10个数,保存在一个数组中,在数组中查找某个数,给出是否找到的信息。如果找到了,要求输出该数在数组中所处的位置;如果找不到,输出“没有找到!”。 读入10个值保存在数组中 在数组中查找,一旦找到,通过break语句跳出循环 演示示例

数组应用2 问题描述: 编写C程序实现冒泡排序算法,按照降序排列一组数。 读入5个值保存在数组中 演示示例 9 23 16 9 90 23 #define N 5 …… int grade[N],temp; for(i=0;i<N;i++) scanf("%d",&grade[i]); { for(j=0;j<N-i-1; j++) if(grade[j] < grade[j+1]) temp = grade[j+1]; grade[j+1] = grade[j]; grade[j] = temp; } 数组应用2 问题描述: 编写C程序实现冒泡排序算法,按照降序排列一组数。 读入5个值保存在数组中 9 23 16 9 90 23 23 90 16 9 25 90 16 25 90 25 16 演示示例

总结 数组是可以在内存中连续存储多个元素的结构数组中的所有元素必须属于相同的数据类型 数组必须先声明,然后才能使用。声明一个数组只是为该数组留出内存空间,并不会为其赋任何值 数组的元素通过数组下标访问 一维数组可用一个循环动态初始化,而二维数组可用嵌套循环动态初始化 二维数组可以看作是由一维数组的嵌套而构成的

练习与作业 练习: 作业: 编写程序,要求输入10个整数存放于数组中,然后对数组按小到大进行排序并输出 使用的数组的意义何在? 如何理解C中的数组?