C语言程序设计-3应用

上传人:飞*** 文档编号:51829010 上传时间:2018-08-16 格式:PPT 页数:142 大小:1.51MB
返回 下载 相关 举报
C语言程序设计-3应用_第1页
第1页 / 共142页
C语言程序设计-3应用_第2页
第2页 / 共142页
C语言程序设计-3应用_第3页
第3页 / 共142页
C语言程序设计-3应用_第4页
第4页 / 共142页
C语言程序设计-3应用_第5页
第5页 / 共142页
点击查看更多>>
资源描述

《C语言程序设计-3应用》由会员分享,可在线阅读,更多相关《C语言程序设计-3应用(142页珍藏版)》请在金锄头文库上搜索。

1、梁穗儿工作室 C C语言程序设计语言程序设计-3-3应用应用7数组歌唱比赛成绩统计及排名 8指针模拟彩票开奖 9函数及结构体简易通讯录 10数组和函数综合应用打印日历 11图形模式及图形函数图形模式及图形函数电子时钟电子时钟 梁穗儿工作室 C语言程序设计项目七 数组歌唱比赛成绩统计及排名梁穗儿工作室 学习目标掌握数组的基本概念。 掌握数组的定义和初始化方法。 掌握数组的使用方法。 掌握排序算法。 梁穗儿工作室 进行程序设计时,经常需要存储或者处理大量 相同性质的数据,例如每轮比赛的成绩,班里每个 学生的学分,每个月的销售额等,可以利用前面介 绍过的普通变量来表示这些数据。但是这会使程序 员花大

2、量时间进行变量定义和操作,不利于程序设 计。除了普通变量以外,C语言提供了数组数据类型 。它能够解决上面的问题,从本质上来说,数组可 以看作批量的变量数据。 本项目介绍C语言中数组的基本概念和使用方法 ,以及基于数组的排序算法。并以歌唱比赛成绩统 计程序的设计过程为例,使读者能够更加深入的了 解数组的使用方法和作用。 项目七 数组歌唱比赛成绩统计及排名梁穗儿工作室 项目七 数组歌唱比赛成绩统计及排名任务一 了解数组 任务二 输入10名选手的名字并保存任务三 输入评委给每位选手打的分 任务四 找到每位选手的最高分 任务五 找到最低分 任务六 去掉最高分和最低分,求每位选手的平 均分 任务七 根据

3、选手得分排名次 任务八 输出比赛结果梁穗儿工作室 任务一 了解数组数组是指一组类型相同并且占据连续空间 的数据的有序集合。 数组用连续空间存储同类型的大量数据, 所以数据的访问和处理是有规律的。 数组中的每个元素可以看作一个普通变量 ,可以通过数组名和下标作为变量名进行 操作。梁穗儿工作室 一维数组数组定义方式如下:元素类型 数组名常量或者常量表达式;例如: int a6;定义了一个存放6个int型数据的 数组“a”,“a”是该数组的名字 数组名后面使用中括号“”。 中括号“”中的内容表示数组大小或者长度,也 就是数组中的元素个数,它必须是常量或者常 量表达式,不能是变量。梁穗儿工作室 数组中

4、的元素个数必须是大于0的整数。数组对应内存中一块连续空间,而数组名就代 表数组内存的起始地址。数组中各元素的具体结构 如下所示。int b6;b0 b1 b2 b3 b4 b5数组名还有另外一层含义,那就是数组的起始 地址。123456梁穗儿工作室 数组元素引用的说明一维数组元素的引用格式为“数组名下标”下标的范围从0开始,到元素个数n-1结束。所以对于 有n个元素的数组,它的n个元素分别是a0,a1, a2an-1。例如对于数组“char arr5;”,第1个 元素是arr0,最后1个元素是arr4,而arr5不属于数 组。访问不属于数组元素的操作称为“数组下标越界”, 虽然C语言编译器对于

5、下标的越界 访问不会作为错误处 理,但是程序员应该自己检查下标的正确性,以免造成错 误。梁穗儿工作室 数组元素引用的说明(2)数组元素可以作为独立的变量,所以能够进行运算以及 输入输出操作。由于数组元素连续存放,下标是连续的整数,所以可以 很方便地利用循环语句来访问数组中的每一个元素。例如打 印数组“char arr5;”中的每个元素char arr5;int i;for(i=0;i maxi”,说明“scoreij”比 “maxi”更有可能成为最大值,所以将“scoreij”作为最 大值存储在变量“maxi”中。 将新的“maxi”继续和剩余元素比较,然后重复执行步骤2 ,直到全部元素都已经

6、比较过。由于“maxi”的值会随着比 较而不断更新成更大的元素值,所以最后存在“maxi”里的 内容就是数组里真正的最大值。梁穗儿工作室 梁穗儿工作室 梁穗儿工作室 首先将“maxi”的初值设置为“scorei0”,代码如下: maxi = scorei0; 然后编写和“scoreij”比较的过程,代码如下: if(scoreij maxi) maxi = scoreij; 对score1score9每一个元素循环执行这个过程。综合上面 的描述,找到最高分的代码可以写为: int i; maxi=scorei0; for(j=1;j maxi) maxi = scoreij;梁穗儿工作室 任务

7、五 找到最低分main() int score10=76,85,83,79,70,91,81,67,75,90;int max,min,maxindex=0,minindex=0;int i;max=min=score0; /*设置初值*/for(i=1;imax) max=scorei; /*修改当前的最大值,并记录对应的下标*/maxindex=i; if(scorei main() int your_num8; int win_num8;int i; clrscr(); printf(“* Welcome to the lottery simulator system! *nn“);pr

8、intf(“tPlease input your numbers:n“); for(i=1;iyour_numj) min=j;tem=your_numi;your_numi=your_nummin;your_nummin=tem;printf(“Your numbers are:n“);for(i=1;i#include 随机产生7个129之间的整数:(可能会有重复)梁穗儿工作室 任务二 随机生成一组中奖号码生成一组不重复的中奖号码 方法一、使用嵌套的循环程序。1.定义“i=1”。 2.生成第1个随机数。 3.如果“iwin_numj) min=j;tem=win_numi;win_numi

9、=win_nummin;win_nummin=tem; printf(“nWinning numbers are:n“);for(i=1;i, =,*(p+j) min=j; tem=*(p+j); *(p+j)=* (p+min); * (p+min)=tem/*使用指针交换两个元素*/梁穗儿工作室 任务四 了解指针字符串指针 字符串在内存中的存储与数组相类似,是存储在一块连续的 内存空间中,系统会自动在字符串结尾加上“0”表示结束。利用指针处理连续的内存单元是非常方便,也可以利用指针 来进行字符串的处理,只要将指针指向字符串的起始位置就可以 方便地使用了。定义字符串的指针方法如下: cha

10、r * 指针变量名;/*定义时不初始化*/ char * 指针变量名=字符串常量;/*定义时进行初始化赋值*/ 梁穗儿工作室 使用指针进行字符串的比较任务四 了解指针#include main() char s120,s220; /* 声明两个字符数组*/char *p1,*p2; /* 声明两个字符指针*/p1=s1; /* p1指向字符数组s1首元素*/p2=s2; /* p2指向字符数组s2首元素*/printf(“ * Comparing the two strings *n“);printf(“nPlease input the first strings: “); /* 显示提示信

11、息*/gets(p1); /* 使用函数 gets()输入第一个字符串*/printf(“nPlease input the second strings: “);gets(p2); /* 使用函数 gets()输入第二个字符串*/doif(*p1*p2) printf(“%s%sn“,s1,s2);break;else if(*p1y) return x; else return y; 梁穗儿工作室 类型标识符 一般称为函数的返回类型或者返回值类型。它可以是C语言内 建类型或者自定义的数据类型,例如char,int以及后面 将会提到的结构体类型。如果没有数据需要返回,则将类 型标识符作为“

12、void”,例如“void print()”。这里“void”是关 键字,表示不返回数据。 函数名 用来唯一标识一个函数的标识符,所以必须是合法标识符,并 且在程序中不能有同名标识符与之冲突。上例中函数名为 “max”。 形式参数列表 传递给函数的参数的类型说明,位于函数名后面的括号中。多 个参数用逗号间隔。例如max定义中的“int x”,“int y”。 函数体 函数的主体部分。和main()函数类似,包括声明语句部分和执 行语句部分。函数体用一对大括号括起来。梁穗儿工作室 函数的主要功能是按照调用者要求完成特定的处 理工作。如果将函数比作一个工厂,那么形式参 数就是客户交给工厂的图纸、数

13、据或者原材料, 函数体就是工程车间和工序,而返回值就是工厂 加工后返回给产品。这种类比关系可以用下图进 行描述。梁穗儿工作室 无参函数的一般形式为: 类型标识符 函数名() 声明语句函数体执行语句 如果函数定义在函数调用之前,那么程序不会出现编译错 误。但是如果函数调用在前,而函数定义在后,那么应该 在调用之间需要进行函数声明,否则会出错。函数声明的 作用是说明函数的返回类型和参数列表。 函数声明的形式为:类型标识符 函数名(形式参数列表);梁穗儿工作室 关于函数声明的说明函数声明中的形式参数列表可以省略形式参数名, 而只声明形式参数类型。例如“max()”函数的声明也 可以写成:int ma

14、x(int,int);函数声明中的形式参数名可以与函数定义中的形式 参数名不同。 使用库函数时,只要在文件头部包含了对应的头文 件,就可以在程序调用该库函数,不需要自己编写 函数定义。 对于普通函数,只声明不定义会造成链接错误。梁穗儿工作室 函数的参数n参数有形式参数和实际参数两种形式。n函数定义中函数名后面括号中的变量就是 形式参数(简称形参),如上例函数定义 “int max(int x,int y);”中的“x”和“y”。n函数调用语句中函数名后面括号中的变量 称为实际参数(简称实参),如上例函数调 用语句“c=max(a,b);”中的“a”和“b”。n形参名是被调函数给传递数据命名的代号 ,当函数没有执行时,这些代号不对应存储 单元,当然也就没有值。而实参才是要处理 的数据本身。梁穗儿工作室 函数的返回值函数执行后,将计算或处理的结果通过 return语句返回给主调函数。这些结果数据 称为“返回值”。函数定义中的“类型标识符” 就是指定返回何种类型数据。 return语句用于从被调函数向主调函数返回 数据,return语句的一般形式为:return 表达式;或

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

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