C语言课件(清华版-谭浩强)
合集下载
清华大学C语言谭浩强第一章
整理ppt
8
1.2.1 C程序的实例
例1.1一个简单的C程序。 void main() {
printf("Hello,Human!\n"); /*输出Hello,Human!*/ }
程序的运行结果为: Hello,Human!
整理ppt
9
对上述程序说明如下:
(1)main是主函数的函数名,表示这是一个主函 数。每一个C源程序都必须有且只有一个主函数 main。
• 1972年Ken Thompson与在UNIX系统上的亲密合作者 Dennis Ritchie将B语言改成了C语言;
整理ppt
5
• 1978年,Brain W.Kernighan、Ken Thompson与 Dennis Ritchie合著了著名的《The C Programming Language》,该书介绍的C语言成为 后来广泛使用的C语言版本的基础;
load装入文件pick显示最近装入过的最后9个文件的列表new编辑新文件文件名为nonamecsave将正在编辑的文件存盘write将正在编辑的文件改名存盘directory显示当前工作目录的内容changedir显示当前工作目录的路径名允许把它改为另一个名字osshell暂时退回到dos环境键入exit命令返回turboquit退出turboc返回dos系统整理整理pptppt4242editedit编辑菜单提供输入和编辑程序的功能不含下拉子菜单
• C语言规定,标识符由字母(A~Z,a~z)、数字 (0~9)、下划线(_)组成的字符串,并且其第一个 字符必须是字母或下划线。
• 例如:标识符a, x, x3,BOOK_1,sum5是合法的。而 以下标识符是非法的: ① 3s 以数字开头。 ② s*T 出现非法字符*。 ③ -3x 以减号开头。 ④ bowy-1 出现非法字符-(减号)。
C语言谭浩强完整课件
2020/12/15
1.3 C语言的发展及其特点
➢C语言是国际上广泛流行的计算机高级
语言。 ➢C语言的发展:
具有多种数据类型
BCPL语言
B语言
C语言
2020/12/15
精练、接近硬件,但 过于简单, 无数据类型
1.3 C语言的发展及其特点
• 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
2020/12/15
函数体
1.4.1 最简单的C语言程序举 例
#include <stdio.h>
int main( )
{
printf (”This is a C program.\n”);
return 0;
输出函数
}
2020/12/15
输出语句
1.4.1 最简单的C语言程序举 例
#include <stdio.h> int main( ) {
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 运算符丰富。 • 有34种运算符 • 把括号、赋值、强制类型转换等都作为运算符处理 • 表达式类型多样化
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 数据类型丰富。 • 包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型 • C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool) • 指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
会自动地、有条不紊地进行工作 ➢计算机的一切操作都是由程序控制的,
离开程序,计算机将一事无成
2020/12/15
1.3 C语言的发展及其特点
➢C语言是国际上广泛流行的计算机高级
语言。 ➢C语言的发展:
具有多种数据类型
BCPL语言
B语言
C语言
2020/12/15
精练、接近硬件,但 过于简单, 无数据类型
1.3 C语言的发展及其特点
• 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
2020/12/15
函数体
1.4.1 最简单的C语言程序举 例
#include <stdio.h>
int main( )
{
printf (”This is a C program.\n”);
return 0;
输出函数
}
2020/12/15
输出语句
1.4.1 最简单的C语言程序举 例
#include <stdio.h> int main( ) {
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 运算符丰富。 • 有34种运算符 • 把括号、赋值、强制类型转换等都作为运算符处理 • 表达式类型多样化
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 数据类型丰富。 • 包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型 • C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool) • 指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
会自动地、有条不紊地进行工作 ➢计算机的一切操作都是由程序控制的,
离开程序,计算机将一事无成
2020/12/15
C语言程序设计_课件_第六章(适于清华谭浩强版)
int data[5]={1,2,3,4,5};
注意
(1) 允许初始化一部分元素,而不是全部。 int data[5]={1,2}; (2) 初始化数组时,允许省略数组的长度。 int data[]={1,2,3,4,5}; 与int data[5]={1,2,3,4,5};是完全等价的。 (3) 初始化数组时,不能对整个数组初始化。 例如,int data[5]=1;
程序段一: #Байду номын сангаасefine Size 5 main() { int a[Size],b[Size+10]; /*正确 … } 程序段二: main() { int n=5; int data[n]; /*错误 …… }
*/
*/
6.2.2 一维数组的引用 引用数组单元的一般形式为: 数组名[下标] 数组下标可以是整型变量或整型表达式, 但不能是浮点型的变量或浮点型表达式;并且 下标不能大于[数组长度-1],因为超过部分没 有被定义过,是不能正确使用的。 图。 例如:data[4]、data[i+j]、data[i++]都是 合法的引用方式。
地址二维数组在概念上是二维的,可以说 是数组的数组,二维数组的下标在行和列两个方 向变化。但是,计算机的内存是连续编址的,也 就是说存储器单元是按一维线性排列的。那么, 如何按照地址的顺序存放二维数组呢?一般有两 种方式来存储二维数组,第一种称为按行排列, 方法是先存储完第一行中的每个元素,再存放下 一行的每个元素;第二种称为按列排列,方法是 先存储完第一列中的每个元素,再存放下一列的 每个元素。C语言的编译系统采用按行排列。
每个数组在使用之前都需要定义。 定义数组的语法是: 数据类型说明符 数组名[数组长度];
清华谭浩强C语言函数公开课一等奖优质课大赛微课获奖课件
如:main( )
{
…
double new_style ( int, double ); /*函数申明*/
…
}
Double new_style (int a, double x) /*函数定义*/
{
…
}
第25页
阐明: 1)类型标识符 被调函数名( );这种申明形 式也是合法,但不提倡。 2)假如被调函数为自定义函数且其定义 在主调函数定义之前,则在主调函数中可 不必阐明其类型。由于编译程序已知道其 类型。 3)假如被调函数值是整型或字符型,可 不必申明类型,系统自动按整型阐明。
scanf(“%d%d%d”,&n1,&n2,&n3); nmax=max(n1,n2,n3); printf(“max=%d\n “,nmax); } int max(int x,int y,int z) { int m; if(x>y)
m=x; else
m=y; if(z>m)m=z; return m; }
main() { int n1,n2,n3,nmax;
scanf(“%d%d%d”,&n1,&n2,&n3); if(n1>n2)
nmax=n1; else nmax=n2; if(n3>max)
max=n3; printf(“max=%d\n”,nmax); }
第13页
使用函数 int max(int,int,int); /*函数申明*/ main() { int n1,n2,n3,nmax;
1.函数头(首部):阐明了函数类型、函数名称及 参数。
(1)函数类型:函数返回值数据类型,能够是基 本数据类型也能够是结构类型。假如省略默认为 int,假如不返回值,定义为void类型。
C语言谭浩强完整课件
着广泛的应用。
计算机系统基本概念
计算机系统的组成
计算机系统由硬件系统和软件系统两大部分组成,硬件系统包括运算器、控制器、存储器 、输入设备和输出设备等五大部分;软件系统包括系统软件和应用软件两大类。
计算机的工作原理
计算机的工作原理可以概括为存储程序控制和程序控制流,即计算机通过执行存储在内存 中的程序来控制各部件协调工作。
在定义数组时,可以直接 对数组进行初始化,也可 以定义后再进行赋值。
一维数组的使用
通过下标访问数组元素, 下标从0开始,最大下标为 数组长度减1。
二维数组与多维数组
二维数组的定义
二维数组可以看作是一个 表格,由行和列组成,每 个元素都有两个下标。
二维数组的初始化
在定义二维数组时,可以 直接对数组进行初始化, 也可以定义后再进行赋值 。
scanf和printf函数都支持 格式化输入输出,可以通 过格式控制符指定输入输 出数据的类型和格式。
格式化输入
格式控制符
C语言提供了一组格式控制符,用于 指定输入输出数据的类型和格式,如 %d表示输入输出整数,%f表示输入 输出浮点数等。
格式化输入
格式化输出
使用printf函数进行格式化输出时, 可以指定输出数据的格式和显示方式 ,如控制小数位数、显示宽度等。
类型。
枚举常量的说明
在枚举类型定义中,可以列 出多个枚举常量,每个常量 对应一个整数值。默认情况 下,第一个枚举常量的值为0 ,后续常量的值依次递增1。
枚举变量的使用
声明枚举类型的变量后,可 以为其赋值。枚举变量的值 只能是枚举常量中定义的值 。使用枚举类型可以提高代 码的可读性和可维护性。
08
文件操作与数据处理
C语言程序设计_课件_第七章(适于清华谭浩强版)
注意:
(1) return(表达式); 和return 表达式;都 是正确的。 (2) 带返回值的函数只能返回一个值。 (3) 在函数定义时,允许使用多个return语句, 但是应尽量在末尾使用一个return语句。 (4) return语句中的表达式与函数的返回值类 型不匹配时,以函数定义时的返回类型为准。
问题的提出 函数基础 函数的定义 函数说明 函数调用 参数传递 程序举例 递归调用 变量的存储类别
7.1 问题的提出
例6.20它可以解决的问题有: ①输入若干个学生的姓名、某课程的期中 和期末成绩,并计算每个学生的总评成绩; ②计算总评成绩的分数段情况; ③输出所有学生的姓名、期中、期末和总 评成绩; ④查询某个学生的总评成绩。
函数调用时需要传递数据。调用函数要将 实参的值传送给被调用函数的形参。 若函数定义首部是 double power(double x,int n) /*函数定义 */ 调 用 形 式 是 可 以 是 power(y,m) , 也 可 以 是 power(3.0,5)。 其中,x和n是形式参数,y和m是实际参数,3.0 和可以是一个变量 名,因为变量名也构成一个表达式,形式参数只 能是变量名。当实际参数是变量名时,它与形参 的名称既可以相同,也可以不同,只是要注意, 在函数定义内部应该使用形参的名称。 (2) 实际参数与形式参数的参数个数、数据类型 和顺序都应该一致,如果数据类型不一致,系统 将按照自动转换规则进行转换。
7.3 函数的定义
7.3.1 函数的定义形式 在C语言中函数定义的形式有两种。
第一种:
函数返回值的数据类型说明 函数名称(带有类型说明的参数表)
{
函数内部数据说明; 语句;
}
第二种:
C语言程序设计_课件_第九章(适于清华谭浩强版)
注意, 注意,对嵌套结构体的引用必须引用
到最末一级。 到最末一级。
struct OBJECT { struct TASK { long plan; long start; long finish; } ti,tj; int count; } ob;
可以使用scanf(“%d”,&ob.ti.plan) 输 可以使用 入数据。但是不能引用ob.ti 。 入数据。但是不能引用
9.2 结构体与数组 9.2.1结构体包含数组 结构体包含数组 由于结构体的成员可以是任何基 本数据类型和另外一个构造类型, 本数据类型和另外一个构造类型,所 以结构体的成员当然可以是数组。 以结构体的成员当然可以是数组。 下面我们说明一个可以描述一个股票 信息的结构体: 信息的结构体:
struct STOCK { char stockname[8]; /*股票名称 */ 股票名称 char stockcode[6]; /*股票代码 */ 股票代码 float price[3]; /*买 入价、卖出价、成交价 */ 买 入价、卖出价、 }; ;
不能混淆结构体名和结构体变量这两 个概念。 个概念。结构体名实际上标识了程序员定 义的一种新的数据类型, 义的一种新的数据类型,编译系统不可能 为结构体名分配内存空间。 为结构体名分配内存空间。只有当变量被 说明为这种由程序员自己定义的数据类型 的结构体时, 的结构体时,编译系统才会为结构体变量 分配存储空间。在不引起混淆的情况下, 分配存储空间。在不引起混淆的情况下, 结构体变量可以简称为结构体。 结构体变量可以简称为结构体。
*/
Struct STOCK sfz={"ShenFaZhan","000001",8.77,8.78,8.78 }; /*用深发展的数据初始化结构体变量 用深发展的数据初始化结构体变量sfz*/ 用深发展的数据初始化结构体变量 printf("\n %s %s ", sfz.stockname, sfz .stockcode); /*输出股票名称和股票代码 */ 输出股票名称和股票代码 for (i=0;i<3;i++) /*输出股票的买入价、卖出价和成交价 输出股票的买入价、 输出股票的买入价 卖出价和成交价*/ printf("%6.2f ", sfz.price[i]); }
C语言程序设计_课件_第四章(适于清华谭浩强版)
例4.6:将输入字符的大写字符转换成小写字符输 出,小写字符原样输出。 #include "stdio.h" /*-------------------lowercase--------------------------*/ void main() { int c; c=getchar(); if (c>='A' && c<='Z') putchar(c+32); else putchar( c); }
的值为非0,表达式即为真。
例4.2使用if形式编写程序:输入x,求出并输出x的 绝对值。 #include "stdio.h" /*----------------------abs(x)--------------------------*/ void main() { int x; scanf("%d",&x); if (x<0) x=-x; printf("|x|=%d\n",x); }
判断其它条件,跳转到下一条语句执行。若全部 表达式为假,则执行语句n+1。 if (x>0) printf (" x=0"); else if (x<0) printf("x<0"); else
printf("x>0");
例4.8
根据输入的百分制按五分制的成绩输出。百
分制与五分制之间的关系见下表。 百分制 90 ~ 100 80 ~ 89 60 ~ 79 0 ~ 59 五分制 5 4 3 2
表达式语句 最简单的可执行语句。只要在表达 式后面加上分号就可以了。 例如: ++i; x=y; 有效的表达式语句一般都要有赋值 运算, 否则,不做任何赋值运算的表达 式大多数是无意义的。
《C程序设计》清华大学出版社 PPT教程 第1章
1)启动Visual C++,选择“文件”菜单中的“新建” 命令,选择“文件”标签中的“C++ Source File” 选项。
2)选择源程序存放的目录和输入源程序名,单击 “确定”。 3)在编辑器中编写源程序。
4)单击F7或“编译”中的“重建全部”编译源程 序,若编译通过,单击“执行”,在DOS屏上看 结果,任按一键返回编辑器。 35
• 目标程序:
• 也称为"结果程序",是源程序通过翻译程序 加工以后所生成的程序。
• 翻译程序:
• 是指一个把源程序翻译成等价的目标程序的 程序。
15
基本术语
——三种不同类型的翻译程序
• 汇编程序:
其任务是把用汇编语言写成的源程序,翻译成机器语言形式 的目标程序。
• 编译程序:
若源程序是用高级程序设计语言所写,经翻译程序加工生成 目标程序,那么,该翻译程序就称为“编译程序”。
5
C高级语言程序设计
课程目标
• 掌握C语言的语法规则 • 掌握程序设计的基本思想和方法,养成良 好的程序设计习惯。 • 会运用编程工具进行程序的设计与实现。 • 会读、会编、会调试C程序
6
第一章
7
主要内容
计算机语言的发展
程序开发过程 C语言概述
8
计算机语言的发展
运算器 控制器 存储器 输入设备 输出设备
常用的有Turbo C 2.0、Turbo C++ 3.0、Visual C++6.0、Dev5.0等。
Turbo C++ 3.0:是一个集成环境,它具有方便、直观 和易用的界面,虽然它也是DOS环境下的集成环境,但 是可以把启动Turbo C++ 3.0 集成环境的DOS执行文件 tc.exe生成快捷方式,也可以用鼠标操作。
C语言程序设计_课件_第三章(适于清华谭浩强版)
3.8 位逻辑运算符
~ << >> & | ^ 按位取反 左移 右移 按位与 按位或 按位异或 操作数在实现位操作时按二进制进行运算, 7一般应为无符号型整数。
按位与&
按位与的运算规则是: 0&0=0 0&1=0 1&0=0 1&1=1 例如:char w1,w2,w3; w1=10; w2=8; w3= w1&w2 ; w3的内容可以通过下式运算:
00001010
00001000 (按位与&)
00001000 (结果)
&运算经常用于把特定位清零(屏蔽)。
例如,
a的值为11011010,b的值为11110000,
a&b
11011010
& 11110000
11010000
相当于把a的低4位屏蔽,高4位不变。
按位或 |
按位或的运算规则是: 0 | 0=0 0 | 1=1 1 | 0=1 1 | 1=1 例如: char w1,w2,w3; w1=10; w2=8; w3= w1|w2 ; w3的内容可以通过下式运算: 00001010 00001000 (按位或 |) 00001010 (结果)
六个关系运算符中的“!=”和“==”的优先 级小于其余四个运算符。
关系运算符的优先级小于算术运算符, 大于赋值运算符。关系运算符的结合性均为自 左至右。
当多种运算符在一个表达式中同时使用时, 要注意运算符的优先级,防止记错运算符优先 级的最好方法是加圆括号。
例3.4 注意,不赞成按本例这样编写程序。 #include "stdio.h" void main() { int x,y,z,i,j; x=4,y=3,z=2; i=y>z; j=x>y>z; printf("%2d,%2d,",i,j); printf("%2d,",z>y==3); printf("%2d,",y+z<x); printf("%2d\n", y+2>=z+1); } 运行结果为: 1,0,0,0,1
C语言课件 清华大学谭浩强版c6
§6.5 函数参数及其传递方式
形参与实参
形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 说明:
实参必须有确定的值 形参必须指定类型 形参与实参类型一致,个数相同 若形参与实参类型不一致,自动按形参类型转换———函数 调用转换 形参在函数被调用前不占内存;函数调用时为形参分配内存; 调用结束,内存释放
运行结果:9,9
(main)
9 5 9 9 2000 2002
(swap)
2000 2002 ****
...
指针变量在使用前 必须赋值!
…...
整型变量a 整型变量b 指针pointer_1 指针pointer_2 指针p1 指针p2 指针p
函数说明
一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名(); 作用:告诉编译系统函数类型,参数个数及类型,以便检验 函数定义与函数说明不同 函数说明位置:程序的数据说明部分(函数内或外) 下列情况下,可不作函数说明 若函数返值是char或int型,系统自动按int型处理 被调用函数定义出现在主调函数之前 有些系统(如Borland C++)要求函数说明指出函数返值类型和形 参类型,并且对void 和 int 型函数也要进行函数说明
无参函数 有参函数
使用库函数应注意: 1,函数功能 2,函数参数的数目和顺序,及各参数意义和类型 3,函数返回值意义和类型 4,需要使用的包含文件
Ch7_201.c
§6.2 函数的定义
一般格式
现代风格:
函数返回值类型 缺省int型 无返回值void
合法标识符
函数类型 函数名(形参类型说明表) { 说明部分 语句部分 } 例 例 有参函数(现代风格) 有参函数(现代风格) 例 无参函数 y) 例 x, int int max(int x,int y) max(int 空函数 printstar( ) dummy( ) { {int int z; z; { printf("**********\n"); } { } z=x>y?x:y; z=x>y?x:y; 或 return(z); return(z); printstar(void ) 函数体为空 } } { printf("**********\n"); }
C语言程序设计_课件_第五章(适于清华谭浩强版)
5.3 do while语句
5.3.1 do while 语句的语法和框图 do while循环语句的语法是: do { 语句; } while (表达式); 功能: 执行“语句”,计算表达式的值,如果表 达式的值非零(真),继续执行“语句”,直 到表达式的值为零(假),循环结束。
do while与while语句的区别是: do whil总是要先做一遍循环体,再做表 达式的判断,因此循环体中的语句肯定要做一 次。在设计程序时,如果不知道重复执行的次 数,而且第一次必须执行时,常采用do while 语句。
需要注意以下几点:
(1) 循环次数的控制要正确。
(2) 循环体包含一个以上的语句时,一定要用花 括号括起来,否则,可能与程序要求不符。 (3) 在循环体内要有使循环趋向于结束的语句, 否则,可能引起无限循环。
(4) 循环表达式可以是真,通过在循环体中加if 语句对循环进行控制。
判断程序结果: #include "stdio.h" void main() { int i; i=0;
while (i<20) i++;
printf("%d ",i);
printf("\n");
}
判断程序结果: #include "stdio.h" void main() { int i; i=1;
while (i<=20) printf("%d ",i);
i++;
printf("\n ");
}
判断程序结果: #include "stdio.h" void main() { int i; i=1; while (10) /*循环表达式为真 { printf("%d ",i); if (i<20) i++; else break; } printf("\n "); } */
C语言谭浩强完整课件
这种双重性,使它既是成功的系统描述 语言,又是通用的程序设计语言
1.3 C语言的发展及其特点
C语言主要特点:
用C语言编写的程序可移植性好。
C的编译系统简洁,很容易移植到新系统
在新系统上运行时,可直接编译“标准链接 库”中的大部分功能,不需要修改源代码
几乎所有计算机系统都可以使用C语言
1.4.1 最简单的C语言程序举例
#include <stdio.h>
int main( )
{ printf (”This is a C program.\n”); return 0; }
当main函数执行结束前 将整数0作为函数值
1.4.1 最简单的C语言程序举例
#include <stdio.h>
#include <stdio.h> int main( ) { int a,b,sum; a = 123; b = 456; 用sum的值替代 sum = a + b; printf(”sum is %d\n”,sum); return 0; 希望输出的字符 }
例1.3求两个整数中的较大者。 解题思路: 用一个函数实现求两个整数中的较大者 在主函数中调用此函数并输出结果
#include <stdio.h> int main( ) { 因max函数的定义在main函数之后,需声明 int max(int x,int y); int max(int x,int y) int a,b,c; scanf(”%d,%d”,&a,&b); { int z; c = max(a,b); printf("max=%d\n",c); if (x > y) z = x; else z = y; return 0; return(z); } }
1.3 C语言的发展及其特点
C语言主要特点:
用C语言编写的程序可移植性好。
C的编译系统简洁,很容易移植到新系统
在新系统上运行时,可直接编译“标准链接 库”中的大部分功能,不需要修改源代码
几乎所有计算机系统都可以使用C语言
1.4.1 最简单的C语言程序举例
#include <stdio.h>
int main( )
{ printf (”This is a C program.\n”); return 0; }
当main函数执行结束前 将整数0作为函数值
1.4.1 最简单的C语言程序举例
#include <stdio.h>
#include <stdio.h> int main( ) { int a,b,sum; a = 123; b = 456; 用sum的值替代 sum = a + b; printf(”sum is %d\n”,sum); return 0; 希望输出的字符 }
例1.3求两个整数中的较大者。 解题思路: 用一个函数实现求两个整数中的较大者 在主函数中调用此函数并输出结果
#include <stdio.h> int main( ) { 因max函数的定义在main函数之后,需声明 int max(int x,int y); int max(int x,int y) int a,b,c; scanf(”%d,%d”,&a,&b); { int z; c = max(a,b); printf("max=%d\n",c); if (x > y) z = x; else z = y; return 0; return(z); } }
清华大学C语言谭浩强第4章
2.对二维数组初始化的说明
(1)二维数组初始化和一维数组初始化的方法基本 相同,也是在类型说明时给各个数组元素赋以初值。 稍微有所区别的是:二维数组可按行分段赋值,也 可以不分行连续赋值。
• 例如对数组m[4][3]:
①按行分段赋值可写为:
int m[4][3]={ {78,65,80},{67,89,65},{53,68,98},{57,88,67} }; • 其中,{78,65,80}是赋给第一行3个数组元素的,这里可以看
下形式来表示:
int m[10]={2,2,2,2,2,2,2,2,2,2}; • 而不能为了方便写成如下的形式:
int a[10]=2; (3)如果给全部元素赋值,则在数组说明中,可以不
给出数组元素的个数。其长度等于初值表中数组元素 的个数。例如:
int m[5]={1,2,3,4,5}; 可写为:
第4章数组和字符串
第4章 数组和字符串
• 4.1 数组的概念 • 4.2 一维数组 • 4.3 二维数组 • 4.4 字符串与字符函数
4.1 数组的概念
• 1.数组的定义 • 2.数组的数据类型 • 3.数组的维数
1.数组的定义
• 按序排列的同类数据元素的集合就称为数组。 • 在C语言中,一个数组可以分解为多个数组元素。 • 按数组元素类型的不同,数组又可分为数值型数组、
if(a[i]<min)
/* 如果当前数小于最小数 */
{ min=a[i];
/* 记录新的最小数和下标 */
min_m=i;
x=a[min_m]; /* 交换最小数和第m个数的位置 */
a[min_m]=a[m]; a[m]=x; } for(i=0;i<n;i++)