C语言程序设计PPT课件 第5章 数组程序设计

合集下载

C语言程序设计 第5章 数组程序设计PPT课件

C语言程序设计 第5章 数组程序设计PPT课件

第1次 第2次 第3次 第4次 第5次 第6次 第7次 第8次 第9次 i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8
scanf("%d",&a[i]);
for(i=0;i<N-1;i++) if(a[i]>a[i+1])
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
第5章 数组程序设计
5.1 一维数组程序设计 5.2 字符串操作 5.3 二维数组程序设计 5.4 数组应用程序举例
C语言程序设计-理论方法与实践(第2版)语言程序设计-理论方法与实践(第2 版)语言程序设计-理论方法与实践(第2版)语言程序设计-理论方法与实践(
5.1 一维数组程序设计
5.1.1 一维数组示例程序 5.1.2 一维数组的定义 5.1.3 数值型一维数组的输入和输出 5.1.4 数值型一维数组的初始化 5.1.5 字符型一维数组的初始化 5.1.6 一维数组的存储
➢ 错误 int n=10; float a[n];
C语言程序设计-理论方法与实践(第2版)语言程序设计-理论方法与实践(第2 版)语言程序设计-理论方法与实践(第2版)语言程序设计-理论方法与实践(
5.1.2 一维数组的定义
2、数组元素的引用 数组元素的引用形式
数组名[下标] 下标是数组元素的序号,可以是一个整型常量,也可以是整型表达式。 C语言规定,数组元素的下标从0开始,当数组长度为n时,最末元素的 下标是n-1。
int a,b,c,d,e,f,g,h,i,j; printf("Input Data: "); scanf("%d%d%d%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j); printf("Output Data: "); printf("%d %d %d %d %d %d %d %d %d %d\n",j,i,h,g,f,e,d,c,b,a); return 0; }

C语言程序设计第五章

C语言程序设计第五章
通过编写程序,实现对数组的访问、修改 、排序等操作。例如,实现一个程序,将 一个数组中的所有元素进行排序,或者找 到数组中的最大值和最小值。
05 案例分析
案例一:条件语句在程序中的应用
总结词
条件语句是C语言中用于根据不同条件执行不同操作的语句,通过if、else if和else关键 字实现。
详细描述
编程练习二:循环语句应用
总结词
理解并掌握while和for循环的使用
详细描述
通过编写程序,实现重复执行某段代 码直到满足特定条件,或者根据需要 重复执行某段代码指定次数。例如, 计算1到100的累加和,或者打印出0 到99的所有偶数。
编程练习三:数组操作应用
总结词
理解并掌握数组的基本操作
VS
详细描述
详细描述
数组在程序中用于存储和处理同一种类型的 数据元素,例如存储一组学生的成绩、计算 一组数据的平均值等。数组操作包括数组的 声明、初始化、访问和修改等。通过循环语 句可以方便地遍历数组元素并进行处理。数 组操作在程序中具有广泛的应用,是C语言
中重要的数据结构和算法之一。
06 总结与展望
本章总结
详细描述
C语言中的数组是一种存储相同类型元素的线性数据结构。可以通过索引访问数 组元素,进行赋值、交换、排序等操作。同时,C语言还提供了字符串操作函数, 如strcpy、strcat、strlen等。
语法点三:数组操作
01
示例代码
02
```c
int array[10]; // 声明一个包含10个整数的数组
详细描述
循环语句在程序中用于重复执行一段代码, 例如打印1到10的数字、计算一定数量的累 加和等。循环语句可以嵌套使用,以实现更 复杂的循环结构和算法。循环语句通常与条 件语句结合使用,以控制循环的执行条件和 次数。

第5章 函数与带参数宏 《C语言程序设计及应用教程》课件-PPT课件

第5章 函数与带参数宏  《C语言程序设计及应用教程》课件-PPT课件

5.2 函数的嵌套与递归调用
函数的嵌套调用
不允许嵌套定义,函数间平行的、独立。 C中的函数:
允许嵌套调用。
main( ) 调用函数a 结束
a函数
调用函数b
b函数
【例5-7】 输入两个整数,求平方和
#include <stdio.h>
int fun1(int x,int y)
int fun1(int x,int y);
斐波那契数列");
for(i=0;i<N;i++)
{
printf("%d\t",iF[i]);
if((i+1)%10==0)
printf("\n");
}
printf("\n");
}
int Sum(int iF[],int n); void main() { int i,Fibonacci[N],m,n; //生成斐波那契数列 CreateFibonacci(Fibonacci); //输出斐波那契数列 PrintFibonacci(Fibonacci); //求数列前n项的和 printf(" 请输入要求和的项数 n(n<%d): ",N); scanf("%d",&n); m=Sum(Fibonacci,n); printf("\n 斐波那契数列前 %d项的和:%4d\n",n,m);}
第5章 函数与带参数宏 ?C语言 程序设计及应用教程?课件
5.1 函数的声明、定义与调用
5.1.1 函数的声明与定义 5.1.2 函数调用 5.1.3 函数参数传递 5.1.4 主函数中的参数

C语言完整 ppt课件

C语言完整 ppt课件
1.4.1 宏定义
用一个标识符来表示一个字符串,称为“宏”,标识符称为“宏名”。在 程序中 用宏名替代字符串称为“宏调用”。在编译预处理时,将对程序中所有出现的 “宏 名”,都用宏定义中的字符串代换,这个过程称为“宏展开”。
1.4.1.1 不带参数的宏定义
格式为:#define 标识符 字符串
1.4.1.2 带参数的宏定义
1-4
1.3 C程序上机步骤
C源程序编好后,要经过编辑、编译、连接, 生成可执行文件后,才可运行。
运行集成开发软件
编辑源程序
编译
有 有错? 无 连接
不正确
运行
结果正确? 正确
结束
1-5
1.4 编译预处理
编译预处理是指,在C编译程序对C源程序进行编译之前,由编译预处理程 序对源程序中的预处理命令进行处理的过程。
1.2.1 C语言程序举例
1.2.2 C语言程序的结构
1.2.2.1 函数是C语言程序的基本单位。
1.2.2.2 函数的一般结构
任何函数(包括main()函数)都是由函数首部和函数体两部分组成。
1. 函数首部: 函数首部即函数第一行,由函数类型、函数名和函数参数表三部分组成。
2. 函数体: 函数体为函数首部下面的花括号{……}内的部分。 函数体一般由声明部分和执行部分构成:声明部分定义所用到的变量,声明所调用的函数等; 执行部分有若干语句组成。
2.6.1 运算符及表达式简介 2.6.1.1 运算符
C语言中的运算符具有2个特点: ⑴ 运算符的优先级 C语言中,运算符的优先级共分为15级,1级最高,15级最低。 ⑵ 运算符的结合性 C语言中各运算符的结合性分为左结合性(从左到右)和右结合性(从右到左)。 2.6.1.2 表达式 表达式是由常量、变量、函数和运算符组成的式子。 表达式求值是按运算符的优先级和结合性规定的顺序进行的。

C语言数组详解ppt课件

C语言数组详解ppt课件

}
ppt课件完整
10
§ 1.4一维数组程序举例
程序举例1:用选择排序法进行排序。
int a[5] = {3,6,1,9,4};
选择排序法是编程中经常用的一种排序算 法。具体如下:
先将5个数中最小的数与a[0]对换,再将 a[1]到a[4]中最小的数与a[1]对换,这样每比 较一轮,找出一个未经排序的数中最小的一 个。共比较4轮。
表示元素 的个数, 即数组长
度。 4
(一)一维数组(1)——定义及使用
注意: 1.数组名不能与其它变量名相同
void main() {
int a; float a[10]; …… }
ppt课件完整
5
(一)一维数组(1)——定义及使用
2. 不能在方括号中用变量来表示元素的个 数,但可以是符号常数或常量表达式。
6与 a[3] 对换
ppt课件完整
12
main() { int i,j,k,t;
int a[5] = {3,6,1,9,4}; for( i = 0; i < sizeof(a)/sizeof(int) – 1; i++) { k = i;
for( j = i + 1; j < sizeof(a); j++ ){ if(a[j] < a[k] ) k = j;
g[i]:第i个学生的成绩等等
ppt课件完整
2
(一)一维数组(1)——定义及使用
类型说明符 int
任一种基 本数据类 型或构造 数据类型。
数组名[常量表达式] a[10]
用户自定义的数组 名字,其定名规则 与变量名定名规则 一样,都需遵循标
识符定名规则

C语言程序设计教程数组PPT课件

C语言程序设计教程数组PPT课件

{ if (max<a[i]) { max=a[i];j=i;}/*把当前最大值送max,下标送j*/
else if (min>a[i]){ min=a[i];k=i;}
}
printf("max:a[%d]=%d,min:a[%d]=%d",j,max,k,min);
}
第11页/共78页
212021/4/6
2021/4/6
4
第4页/共78页
6.1.2 数组元素的引用
定义了数组以后,就可使用它了。
但不能利用数组名来整体引用一个数组,只能单个的使用数组 元素
数组元素的描述 : 由 数组名加方括号中的下标 组成,即:
数组名[下标]

标:数组元素在数组中的顺序号,使用整序型表达
式。
a[5]=80;
取值范围:从0到元素个数-1。 C语言不a[对2.5下]=标60;越?界作语法
③ #define N 5
long data[N]; /* 定义一个有5个元素的长整型数组
data */
2021/4/6
3
第3页/共78页
例:试判断下列数组定义是否合法:
int student[35]; char name[20]; float score[35]; #define student 35 float n_student[student]; int score_student[student*3]; int person(10); int n=10, a[n];
若不对auto数组进行初始化,则其初值是不可知的。
若一个static或外部数组未进行初始化,则对数值型 数组元素,初值为0,而对字符型数组元素,初值为空字 符‘\0’.

C语言课件 第5章

C语言课件 第5章
如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float

C语言程序设计第5章数组.ppt

C语言程序设计第5章数组.ppt
冒泡法排序
2019/3/19
F
冒泡法排序 (续)
程序如下:
#define N 6 #include "stdio.h" void main( ) {int a[N]; int i,j,t; printf("请输入%d个成绩,用空格隔开:\n",N); for (i=0; i<N; i++) scanf("%d",&a[i]);
2019/3/19
5.2.2 数组元素的引用(续)
2.说明
① 下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。 例如: int a[10],i; scanf ("%d",&a[10]); /* 下标越界 */ C编译系统不做越界检查。
2019/3/19
5.2.2 数组元素的引用(续)
【例5-4】用冒泡法(也称起泡法)对输入的一组 成绩按从低分到高分的顺序排序并输出。
例如将6个数:4、7、5、6、8、1按从小到大顺序用冒泡 法排序,方法如下: 在第一趟排序中, 6个数比较了5次,把6个数中 第一趟排序情况如下: 的最大数8排在最后。 4 7 5 6 8 1 第一次 4和7比较,不交换 4 7 5 6 8 1 第二次 7和5比较,交换 457681 第三次 7和6比较,交换 456781 第四次 7和8比较,不交换 4 5 6 7 8 1 第五次 8和1比较,交换 456718
2019/3/19
5.1概述(续)
2.数组与数组元素的概念
数组:是用一个名字表示的一组相同类型的数据的集合, 这个名字就称为数组名。 如定义:float a[10]; a是数组名。 下标变量(或数组元素):数组中的数据分别存储在用下 标区分的变量中,这些变量称为下标变量或数组元素。 如:a[0]、a[1]…a[i]。 每个下标变量相当于一个简单变量,数组的类型也就是该 数组的下标变量的数据类型。 数组属于构造类型。构造类型的数据是由基本类型数据按 一定规则构成的。

《C语言程序设计》第5章数组、字符串、指针

《C语言程序设计》第5章数组、字符串、指针

相当于声明了5个整型变量
说明: ① 数组的所有元素的数据类型都是相同的。 ② 数组取名规则应符合标识符的规定,数组 名不能与同一函数中其它变量名相同: int a; float a[10]; 是错误的。
③ C语言中规定数组的下标从0开始,方括号 中常量表达式表示数组元素的个数。
④ 不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。例如: int n=5,a[n]; 是错误的。
二维数组在内存的存放顺序是“先行后列”
a[0][0] a[0][1] a[0][2] a[0][3] a[1][0]

a[2][3]
5.3.2 二维数组元素的引用
二维数组的元素的引用形式为: 数组名[下标][下标] 使用二维数组的情况举例: 学生多门功课的成绩,如: a[100][3]可以用来记录100个学生3门功 课的成绩。 矩阵,如: a[3][3]可以用来记录3×3的矩阵。一个 数组元素正好存放一个矩阵的元素。
5.2.2 一维数组的初始化
1、数组声明时初始化 在编译阶段进行的。这样将减少运行时间, 提高效率。 数组初始化的一般形式为: 类型符 数组名[常量表达式]={值,值…值}; 例如: int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相当于a[0]=0; a[1]=1;... a[9]=9;

a[9]
#include <stdio.h> 声明有10个元素 void main() 的一维数组a {int n,i; float s=0, ave, a[10]; a[0] a[1] … a[9] for(i=0;i<10;i++) a[i] { scanf("%f",&a[i]); a[i] s=s+a[i]; } ave=s/10; for(i=0;i<10;i++) a[i] a[i] if (a[i]>ave) printf("%f ",a[i]); }

C语言程序设计教程ppt课件完整版pptx

C语言程序设计教程ppt课件完整版pptx
C语言的应用领域
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。

四川大学《c语言程序设计》课件-第5章 函数

四川大学《c语言程序设计》课件-第5章 函数

用void定义参数 ,表示没有参数
void 函数名(void)
{ 声明语句序列 可执行语句序列 return ;
}
return语句后无需 任何表达式
【例】 计算整数n的阶乘n!
/* 函数功能: 用迭代法计算n!
返回值函数类入型口参数:函整数型名变量说n明表示阶乘的形阶参数表,函
函数返回值: 函返数回的n!功的能值
函数定义(Function definition)
返回值 类型
函数名标识符, 说明运算规则
参数表相当于 运算的操作数
类型 函数名(类型 参数1, 类型 参数2, ……)
{ 声明语句序列
可执行语句序列 return 表达式;
}
函数出口
返回运算的结果
函数定义(Function definition)
因变量
函数名
自变量
程序设计中的函数
程序设计中的函数不局限于计算 –计算类,如打印阶乘表的程序…… –判断推理类,如排序、查找……
问题的提出
读多少行的程序能让你不头疼? 假如系统提供的函数printf()由10行代码替换,那么你编过的程 序会成什么样子?
–实际上一个printf()有上千行代码 main()中能放多少行代码? 如果所有代码都在main()中,怎么团队合作? 如果代码都在一个文件中,怎么团队合作?
C程序的存储类别 – auto型(自动变量) – static型(静态变量) – extern型(外部变量) – register型(寄存器变量)
变量的存储类型( Storage Class)
变量的生存期(Lifetime )
The lifetime of a variable is the period of time during which memory is allocated to the variable

《C语言程序设计》课件 第五章 数组

《C语言程序设计》课件 第五章 数组
若二维数组名a代表的起始地址为5948,则它的三个元 素a[0]、a[1]和a[2]分别对应了起始地址5948、5956和 5964。
a(5948)
a[2](5964) a[1](5956) a[0](5948) 图 5-10
a[2][1] (5968) a[2][0] (5964) a[1][1] (5960) a[1][0] (5956) a[0][1] (5952) a[0][0](5948)
return 0;
}
5.1.4一维数组程序举例
3.用选择法对输入的n个学生的单科成绩进行 从小到大排序。
编程思路: 直接选择排序的过程是:首先在所有数据中找出值 最小(最大)的数据,把它与第1个数据交换,然后 在其余的数据中找出值最小(最大)的数据,与第2 个数据交换......依次类推,这样,n个数据经过n-1轮 交换后可得到有序结果。
printf("%3d ",a[i]); printf("\n"); return 0; }
5.1.3 一维数组的初始化 5.1.3 一维数组的初始化
数组初始化常见的格式:
1.用大括号括起来的常量表达式列表,常量表达式 之间用逗号进行分隔: int a[10]={1,2,3,4,5,6,7,8,9,10};
注意:
不要将a[i][j]写成a[i,j],否则编译系统会将逗号分隔 符作为逗号运算符处理,即将a[i,j]视为a[j]。
5.2.2二维数组元素的引用
可以将二维数组看成是特殊的一维数组。
例如,二维数组a[3][2]可以看成是长度为3的一维数组, 所含的3个数组元素分别为:a[0]、a[1]、a[2]
for(i=0;i<3;i++) for(j=0;j<5;j++)

《C程序设计》数组PPT课件

《C程序设计》数组PPT课件

交换!
79
41
j
1
5.2 一维数组及应用

5 章 数 组
代码段如下:
a[0] 92
for(j=1;j<8;j++) if(a[0]<a[j])
a[j] 71
{t=a[0];a[0]=a[j];a[j]=t;}
93
59
50
27
79
41
j
1
5.2 一维数组及应用

5 章 数 组
代码段如下:
a[0] 92

5
C语言中定义数组就是按数组 a
章 数据类型及元素个数找到相应大
数 小的一组连续的存储空间。例如:

int a[4] a[0]=2 2 a[3]=5 a[2]=3
5.1 数组的概念

5
C语言中定义数组就是按数组 a
章 数据类型及元素个数找到相应大
2
数 小的一组连续的存储空间。例如:

int a[4] a[0]=2 a[3]=5 5 a[2]=3
数组
本章主要内容

5


1. 数组基本概念

2. 一维数组及应用
3. 二维数组及应用
4. 字符数组和字符串
5.1 数组的概念

5
C语言中定义普通变量就是 a2
章 按变量的数据类型找到相应大
数 小的存储空间例如: 组
整型变
int a1,a2;
量占两 个字节
float a3;
a1
char a4
5.1 数组的概念

5
C语言中定义普通变量就是 a2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.用scanf()函数和printf()函数输入输出字符串
/* program e5-5.c*/ #include<stdio.h> 5.2.1 字符串的输入输出 #define N 50 void main() { 1.用scanf()函数和printf()函数输入输出字符串 char str[N],digital[N]; int i=0,j=0; 例5-5 使用“%s”格式符举例。 printf("Input: "); 输入一个长度小于50的字符串,将其中的数字字符按输入顺序存储到 scanf("%s",str); digital数组中,然后输出该数组。 while(str[i]!='\0') { if(str[i]>='0'&&str[i]<='9') digital[j++]=str[i]; i++; } digital[j]='\0'; printf("Output: %s\n",digital); C语言程序设计(第3版)张磊编著 清华大学出版社 }
/* program e5-6.c*/ #include<stdio.h> 5.2.1 字符串的输入输出 #include<string.h> #define N 50 2.使用gets()函数和puts()函数输入输出字符串 void main() ⑴ 使用gets()函数输入字符串 { 格式:gets(字符数组名) char str[N],digital[N]; char str[12]; int i=0,j=0; gets(str); gets(str); 执行gets()函数后,从键盘输入一个字符串存储到str数组中。 while(str[i]!='\0') ⑵ 使用puts()函数输出字符串 { 格式:puts(字符数组名) if(str[i]>='0'&&str[i]<='9') char c[6]="China"; digital[j++]=str[i]; puts(c); i++; } 例5-6 用gets()函数和puts()函数改写例5-5的程序。 digital[j]='\0'; puts(digital); C语言程序设计(第3版)张磊编著 清华大学出版社 }
5.1 一维数组程序设计
5.1.1 逆序输出数据程序 5.1.2 一维数组的定义
5.1.3 数值型一维数组的输入和输出
5.1.4 数值型一维数组的初始化 5.1.5 字符型一维数组的初始化 5.1.6 一维数组的存储
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.1 逆序输出数据程序
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
数组的初始化,是在定义数组的时对数组的各个元素赋初值。 1. 全部元素的初始化 格式 数据类型 数组名[数组长度]={数组全部元素值表} 数据类型 数组名[]={数组全部元素值表} int a[6]={10,20,30,40,50,60}; float r[]={12.5,-3.11,8.6}; 2. 部分元素的初始化 格式 数据类型 数组名[数组长度]={数组前部元素值表} int b[10]={1,2,3}
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.2 一维数组的定义
一般格式 数据类型 数组名[数组长度] 例如: int a [10]; char name[20]; 说明 ⑴ 数组的数据类型就是数组元素的数据类型。 ⑵ 数组长度是数组能够包含的数组元素的个数,是常量表达式。 错误 int n=10; float a[n];
5.1.3 数值型一维数组的输入和输出
例5-2 向数组输入10个整数,然后通过相邻元素比较交换的方法,将最大值 移到数组最后,然后输出该数组。
#include<stdio.h> #define N 10 void main() { int a[N],i,temp; 第1次 第2次 第3次 第4次 第5次 第6次 第7次 第8次 第9次 i=0 i=1 i=2 i=5 i=6 i=3 i=7 i=4 i=8 for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; 相邻元素a[i]与a[i+1]进行比较、交换(i依次取值0,1,2,……,8) a[i+1]=temp; } for(i=0;i<N;i++) printf("%d ",a[i]); }
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.6 一维数组的存储
int a[6]={10,20,30,40,50,60}; char word[6]="Hello!";
数组a→ 10 20 30 40 50 60
a[0] 数组word→ a[1] a[2] a[3] a[4] a[5]
H e l l o i
5.2.2多字符串操作函数 /* program e5-7.c */ #include<stdio.h> 格式:strcat(s1,s2) #include<string.h> 功能:把字符串s2连接到字符串s1的后面。 说明: void main() { ⑴ s1只能是字符数组名、s2既可以是字符数组名,也可以 是字符串常量。 c1[20]="China",c2[10]= "man"; char ⑵ 函数执行之后,s1是连接之后的字符串,s2保持不变。 strcat(c1,c2); 定义s1数组时,其数组长度应不小于两个字符串的长度之和。 printf("String c1: "); puts(c1); 例5-7 将两个字符串连接为一个字符串后输出。 printf("String c2: "); puts(c2); }
引子程序:一个正确的程序,但并不是一个好程序 从键盘输入10个整数,然后按照与输入相反的顺序依次将其输出。
/* program e5-0.c */
#include<stdio.h> void main() { int a,b,c,d,e,f,g,h,i,j; printf("Input Data: "); scanf("%d%d%d%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j); printf("Output Data: "); printf("%d %d %d %d %d %d %d %d %d %d\n",j,i,h,g,f,e,d,c,b,a); }
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.2 一维数组的定义
数组概念 数组是包含多项同类数据的一种数据结构,它能将一系列相 同类型的数据组织起来,使用同一个名字命名,再用下标进 行分量标识,例如a[1]、a[2]、......、a[10]等,当下标用一个 变量i表示时,i的不同取值即对应不同的分量,使用a[i]即可 访问这一组数据的任何一个分量。 这里的a即是一个数组。
5.2.1 字符串的输入输出
/* program e5-4.c*/ #include<stdio.h> void main() 例5-4 使用“%c”格式符举例。 { 输入一个长度是10的字符串,然后逆序输出它。 char str[10]; int i; printf("Input: "); for(i=0;i<10;i++) scanf("%c",&str[i]); printf("Output: "); for(i=9;i>=0;i--) printf("%c",str[i]); printf("\n"); } C语言程序设计(第3版)张磊编著 清华大学出版社
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.3 数值型一维数组的输入和输出
数值型数组的输入和输出通过每一个数组元素的输入和输出实现。 例如,对a数组: 输入a [5] : scanf("%d",&a [5]); 输出a [5]: printf("%d",a [5]);
C语言程序设计(第3版)张磊编著 清华大学出版社
1.字符串连接函数strcat()
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
例5-3 用一维数组生成Fibonacci数列的前20项,并输出。 #include<stdio.h> void main() { long int fib[21]; int i; fib[1]=1; fib[2]=1; for(i=3;i<=20;i++) fib[i]=fib[i-1]+b[i-2]; for(i=1;i<=20;i++) { printf("%-10ld",fib[i]); if(i%5==0) printf("\n"); } }
相关文档
最新文档