c语言-构造体类型—(数组)

上传人:宝路 文档编号:49898817 上传时间:2018-08-04 格式:PPT 页数:78 大小:388.89KB
返回 下载 相关 举报
c语言-构造体类型—(数组)_第1页
第1页 / 共78页
c语言-构造体类型—(数组)_第2页
第2页 / 共78页
c语言-构造体类型—(数组)_第3页
第3页 / 共78页
c语言-构造体类型—(数组)_第4页
第4页 / 共78页
c语言-构造体类型—(数组)_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《c语言-构造体类型—(数组)》由会员分享,可在线阅读,更多相关《c语言-构造体类型—(数组)(78页珍藏版)》请在金锄头文库上搜索。

1、 第一节 数组概述 第二节 一维数组 第三节 字符数组 第四节 二维数组 第五节 数组作为函数参 数第一节 数组概述l定义:数组是有序数据的集合。数组的每 个元素都属于同一个数据类型。l每个数组要用一个统一的标识符标识 。l组成数组的数据称为数组的元素。 l 特点:l数据元素在内存中是按顺序连续存放的 。l每个元素都属于同一个数据类型l具有整体性一、定义 二、引用 三、初始化 四、输入和输出 五、应用举例第二节 一维数组l定义类型说明符 数组名常量表达式;一维 int a5; char c20; float x10; n注意: 数组名命名规则与变量名相同; 数组名后是方括号,而不是小括号; 常

2、量表达式表示元素的个数, 数组的大小是固定的,不能动态定义。 例如:int n; scanf(“%d”,int an;是错误的。l引用l数组必须先定义,后使用。l只能逐个引用数组元素。例如,若定义数组 int a3,则数组元素为:a0 a1 a2 l引用形式:数组名下标;例如:a2=1; ai+j;(i,j为整型变量) 注意下标的值不要超过数组的范围。l 初始化l顺序指定全部元素的初始值int a5=1,2,3,4,5; l输入和输出lC语言规定,对数组的使用只能逐个 引用数组元素,不能一次引用整个数组 。同样,对数组的输入和输出也是依次 对每个元素进行的。 l例5.2 输入10个数,并将它们

3、输出。 printf(“please enter the data:n“);for(i=0;ixi+1)temp=xi; xi=xi+1; xi+1=temp; max=a4;l例5.4用冒泡法对10个整数按从小到 大的顺序排列。l 排序的方法很多,主要有:冒泡法选择法l冒泡法l冒泡法的思想是:假设有n个数,将相邻的 两个数依次进行比较,使小的在前,大的在 后,那么第一轮比较n-1次就把最大的数排 到了最后,第二轮比较n-2次就把次大的数 排到了倒数第二,依此类推,直到第n-1轮 比较1次将最小的数排到了第一,算法结束 。算法的整体思路是让大的数不断地往下沉 ,小的数不断地往上冒,所以叫“冒泡

4、排序 法”。lfor(i=1;ixj+1)l temp=xj;l xj=xj+1;l xj+1=temp;l l选择法排序l for(i=0;iamid,则设top=mid+1 重复以上过程直到bot amid ) top = mid + 1; while( top ch2 函数返回一个正整数l字符串大小写转换strlwr()l格式:strlwr(ch);l功能:将ch中所有的大写字母转换成 小写字母。 l字符串大小写转换strupr()l格式:strupr(ch);l功能:将ch中所有的小写字母转换成 大写字母。 l字符串的连接函数strcat()l格式:strcat(ch1,ch2);l功

5、能:将ch2复制到ch1的后面,连接 时先将ch1的0去掉,连接后在新字符串后 补上0 。要求ch1必须是一个足够大的字符数组,ch2可以是字符串常量或字符数组 名。例:从键盘输入一字符串,统计其中字母、数字和其它字符的个数。#include “stdio.h“ main() char st60;int i,english=0,space=0,num=0,other=0;gets(st);for (i=0;(sti!=0);i+)if (sti=a /* 交换两个姓名的次序*/ strcpy(namej,namej+1);strcpy(namej+1,temp); 一、数组元素作为函数的实参

6、二、数组名作为函数的参数第五节 数组作为函数参数l数组元素作为函数的实际参数l数组元素的引用与一般变量的引用是一样 的,传递的是数组元素的值,属于“值传递” 方式。l例5.8 设a8和b8分别保存了A班和B 班八门课程的平均成绩,现要统计出A班有几 门课程的平均成绩高于B班。main( ) int i,k=0;float a8,b8;for(i=0;iave2 )return(1);else return(0); l数组名作为函数的实际参数lC语言中的数组名代表了数组在内存中存放的 起始地址,所以数组名作为函数的参数传递的 是数组的起始地址,属于“传地址”,是一种 双向传递的方式。l说明: (

7、1)用数组名作为函数的参数,必须对实参数 组先定义,形参必须说明成与实参数组类型一 致的数组。 (2)形参数组和实参数组的数组名可以不一样 ,数组的大小也可以不一致。由于传递的是地 址,所以形参数组和实参数组在内存中实际上 是共用了连续的一块地址空间。例5.9 用函数average()求30个学生英语课的平均成绩 。 float average(mark,n) int mark,n;float ave; int sum=0,i;for(i=0;i #include struct stud long num;char name20;char gender;int age;float score;

8、应用举例void main() struct stud student3; int i;char ch; char numstr20;for( i = 0 ; i =a char str220; int i,j=0;printf(“请输入第一个字符n“);gets(str1);for(i=0;i#include void str(char a) int i;for(i=0;ai!=0;i+)if(ai=a) ai-=32;void main() char str120;printf(“请输入字符串n“); gets(str1); printf(“%sn“,str1);str(str1); pr

9、intf(“%sn“,str1);作业讲解:5-12编写函数判断输入的字符串是否是回文。编写函数判断输入的字符串是否是回文。 #include “#include “string.hstring.h“ “ #include “#include “stdio.hstdio.h“ “ intint ishuiwen(charishuiwen(char a) a) intint i,n,flagi,n,flag=1;=1;n= n=strlen(astrlen(a); );for(ifor(i=0;i #define N 20 void main() int i,j; int score20=1,2,6,4,10,9,8,3,4,6,7,8,9,5,9,7,8,7 ,8,5; int frequency11=0; /*存放统计结果*/for( i = 0; i 20; i+)+frequencyscorei; /*进行统计*/ printf(“ 等级 频率“); for( j = 1; j 11;j+)printf(“%4d%12d n“, j,frequencyj);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号