ch6 数组、函数和指针.pptx

  1. 1、本文档共155页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 数组、函数和指针一、数 组数组问题的引出:实际应用的程序设计中,只用几个变量的情况是极少的;更多的情况是处理大批量的相同类型或不同类型的数据。相同类型数据举例:统计交大1500学生英语4级统考成绩;不同类型数据举例:管理交大1500学生学籍信息记录,包括:姓名、学号、出生日期、班级、各科成绩等。用什么样的数据结构来描述这类应用更简洁?数组数组:具有相同数据类型的变量集合。集合中各数据的排列具有一定的规律。数组中的各数据必须具有相同的数据类型,用下标代表数据在数组中的序号。数组中的数据也称为元素,它们具有相同的名字,但具有不同的下标。这些元素称为数组元素,各元素通过下标区分。一维数组多维数组1. 一维数组特点:每个元素只有一个下标程序中使用数组时,必须先定义例如:int array[10];1) 一维数组定义一维数组的定义格式:类型名 数组名 [常量表达式] 例如: int a[10];说明:方括弧括中的下标表示元素在数组中的位置。C语言的下标从0开始,必须是常量或符号常量,不能是变量。例如:以下语句非法int n;scanf(“%d”,n);int array[n];数组在内存中存储时,是按下标递增的顺序连续存储各元素的值的。1a[0]2a[1]┇ a[9]10一维数组的定义说明:数组名的命名规则和变量名相同,遵循标识符命名规则。定义数组时需要在方括号中用常量表达式指定数组中的元素个数,即数组长度。在被调用函数中定义数组时,其长度可以是变量或变量表达式,此时的变量可以通过参数传递获取。每次调用时可以传递不同的变量值,称为“可变长数组”。 例:void func(int n){int array[n];……}2) 一维数组的引用和初始化一维数组的初始化在定义数组时对数组元素赋以初值。int data[5]={0,1,2,3,4}可以只给数组中部分元素赋初值。int data[5]={,4,,8,}可通过循环语句为数组赋值。数组中元素的引用形式:数组名 [下标]一维数组 例1:定义一个含10个元素的整型数组,依次为其赋值0,1,2…9,并按逆序输出。题目分析:需要先定义一个长度为10的整型数组;元素值很有规律,可通过循环对其赋初值;输出时先输出最后一个元素,即按下标从大到小循环输出。#includestdio.hint main(){ int a[10],i; for (i = 0; i = 9; i++) a[i] = i; for (i = 9; i=0; i--) printf(%d ,a[i]); printf(\n); return 0;}9 8 7 6 5 4 3 2 1 0请按任意键继续…一维数组例2:找出数组中的最大数题目分析:定义一个数组a,以及存放最大数的变量max;定义计数变量i(也是数组长度值),并设i=0;令max=a[i](即:假设数组中第1个元素最大) ;将a[i](0= i n)与max进行比较:若a[i] max ,i=i+1,再执行3否则,令max=a[i],i=i+1,再执行3循环结束,求出最大元素并输出max。#include stdio.hint main(){ int a[7],i,j,max; printf(Please input an array with seven elements: \n); for(i=0; i7; i++) scanf(“%d”,a[i]); max = a[0]; for(j=0; j7; j++) { if(a[j]max) max = a[j]; } printf(max=%d\n,max); return 0;}一维数组例3:用数组求解Fibonacci问题。题目分析:每个数组元素代表数列中的一个数,依次求出各数并存于数组中。数组中元素存放于内存,若按普通方法求解,数列中的各值将不会存于内存。#includestdio.hint main(){ int F[28] = { 1, 1 }, i; for (i =2; i = 27; i++) F[i] =F[i-1]+F[i-2]; for (i = 0; i = 27; i++) { if (i % 5 == 0) printf(\n); printf(%10d , F[i]); } printf(\n); return 0;}一维数组例4:设某数组中存有10位学生的考试成绩,要求对数进行如下操作:每个分数*0.8+20,再重新存入到数组中输出总成绩 printf(10位学生的总成绩是:\n); for(i=0;i=9;i++) { s[i]=s[i]*0.8+20; if(i%5==0) printf(\n); printf(%4d,s[i]); } printf

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档