C语言第08章-数组_第1页
C语言第08章-数组_第2页
C语言第08章-数组_第3页
C语言第08章-数组_第4页
C语言第08章-数组_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-3-62/722022-3-63/722022-3-64/722022-3-65/722022-3-66/722022-3-67/72保存大量保存大量同类型的同类型的相关数据相关数据2022-3-68/72a4a3a2 a1a0数组首地址数组首地址基类型基类型下标从下标从0开始开始2022-3-69/72a4a3a2 a1a02022-3-610/722022-3-611/722022-3-612/72main() int a5 = 1,2,3,4,5, b5; b = a; 解决方法解决方法 方法方法1:1:逐个元素赋值逐个元素赋值 b0=a0; b1=a1; b2=a2; b3=

2、a3; b4=a4; 方法方法2:2:通过循环赋值通过循环赋值 int i; for (i=0;i5;i+) bi = ai; 原因原因: :数组名表示数组的首地址数组名表示数组的首地址, ,其值不可改变其值不可改变! !2022-3-613/722022-3-614/722022-3-615/722022-3-616/722022-3-617/722022-3-618/722022-3-619/722022-3-620/72运行程序可以看到,变量运行程序可以看到,变量c c和和a a的值因数组越界而的值因数组越界而被悄悄破坏了被悄悄破坏了123456078#include #include

3、int main() int a = 1, c = 2, b5 = 0, i; printf(%p, %p, %pn, b, &c, &a); for (i=0; i=8; i+) bi = i; printf(%d , bi); system(pause); printf(nc=%d, a=%d, i=%dn, c, a, i); return 0; 92022-3-621/722022-3-622/722022-3-623/722022-3-624/722022-3-625/721 2 34 5 06 0 00 0 0结果:结果:5, 0, 0【例例】若若int a 3=1

4、, 2, 3, 4, 5, 6, 7,则则a数组的第一维大小是多少?数组的第一维大小是多少? 1 2 34 5 67 0 02022-3-626/722022-3-627/722022-3-628/72short int a23;a0a1a10 a11a12a00 a01a02a00a01a02a10a11a12需知道数组每行列数才能从起始地址开始正确读出数组元素需知道数组每行列数才能从起始地址开始正确读出数组元素2022-3-629/722022-3-630/722022-3-631/722022-3-632/722022-3-633/722022-3-634/722022-3-635/72

5、2022-3-636/722022-3-637/72冒泡排序(冒泡排序(BubbleSort)的基本概念是:依次比较相邻的)的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即在第一趟:首两个数,将大数放在前面,小数放在后面。即在第一趟:首先比较第先比较第1个和第个和第2个数,将大数放前,小数放后。然后比较个数,将大数放前,小数放后。然后比较第第2个数和第个数和第3个数,将大数放前,小数放后,如此继续,直个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后。至此第一趟结至比较最后两个数,将大数放前,小数放后。至此第一趟结束,将最小的数放到了最后。在第二

6、趟:仍从第一对数开始束,将最小的数放到了最后。在第二趟:仍从第一对数开始比较,将大数放前,小数放后,一直比较到倒数第二个数(比较,将大数放前,小数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最小的),第二趟结束,在倒数第倒数第一的位置上已经是最小的),第二趟结束,在倒数第二的位置上得到一个新的最小数(其实在整个数列中是第二二的位置上得到一个新的最小数(其实在整个数列中是第二小的数)。如此下去,重复以上过程,直至最终完成排序。小的数)。如此下去,重复以上过程,直至最终完成排序。 由于在排序过程中总是大数往前放,小数往后放,相当由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,

7、所以称作冒泡排序。于气泡往上升,所以称作冒泡排序。2022-3-638/722022-3-639/722022-3-640/722022-3-641/72#define N 10#include int main()int numN+1,in,i,j;for (i=0;iN;i+) scanf(%d,&numi);/printf(n 请输入一个要插入的数:请输入一个要插入的数:);scanf( %d,&in);2022-3-642/72 for (i=0;iin) break; for (j=N;ji;j-) numj=numj-1; numi=in; for (i=0;iN+

8、1;i+) printf( %d,numi); printf(n); return 0; 2022-3-643/72)3()2(2) 1(12121nfffnfnfnnnf0=1 ( n=0) 2022-3-644/72) 3()2(2) 1(12121nfffnfnfnnnf0=1 ( n=0) 2022-3-645/722022-3-646/722022-3-647/722022-3-648/722022-3-649/722022-3-650/722022-3-651/722022-3-652/722022-3-653/722022-3-654/722022-3-655/722022-3-

9、656/722022-3-657/72#include #define N 40void ReadScore(int score,int n);int FindMax(int score, int n);int main() int scoreN, max, n; scanf(%d,&n);ReadScore(score,n);max = FindMax(score, n);printf(The highest score is %dn, max); return 0;2022-3-658/72max(i=0)max(i=2)max(i=3)2022-3-659/722022-3-66

10、0/722022-3-661/72k=1k=2k=0k=12022-3-662/72k=3k=4k=3k=42022-3-663/722022-3-664/72#include #define N 40void ReadScore(int score,int n);void PrintScore(int score,int n);void DataSort(int score, int n);int main() int scoreN, n; scanf(%d,&n);ReadScore(score,n);DataSort(score, n);printf(“Sorted scores

11、 :); PrintScore(score,n);return 0;2022-3-665/72void ReadScore(int score, int n) int i; for(i=0;in;i+) scanf(“%d”,&scorei); void PrintScore(int score,int n) int i; for(i=0;in;i+) printf(“%d ”,scorei); 2022-3-666/72void DataSort(int score, int n) /*选择法选择法*/ int i, j, k, temp1; for (i=0; in-1; i+)

12、k = i; for (j=i+1; j scorek) k = j; /*记录最大数下标位置记录最大数下标位置*/ if (k != i) /*若最大数不在下标位置若最大数不在下标位置i*/ temp1 = scorek; scorek = scorei; scorei = temp1; 2022-3-667/722022-3-668/72哈,找到了!哈,找到了!事先不必排序事先不必排序2022-3-669/72哈,找到了!哈,找到了!按升序排序按升序排序2022-3-670/72唉,没找到!唉,没找到!2022-3-671/72找到时返回找到时返回下标位置下标位置找不到时找不到时 返回返回-1-12022-3-672/722022-3-673/72谁能出线谁能出线背景:背景:电视台举办电视台举办“超级学生超级学生”才艺大赛,由于报名人数狂多才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每,所以要先进行分组预赛。按规定,每10名学生为一名学生为一个预赛小组,评委打出分数(个预赛小组,评委打出分数(0100分),各小组第一分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。一名,则可同时进入下一轮。输入:输入: 按顺序给出一个小组按顺序给出一个小组10个人的最后得分(个人的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论