




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 数组及结构体数组及结构体4.1 数组及其元素控制数组及其元素控制4.2 字符数组与字符串字符数组与字符串4.3 结构体结构体4.4 较多数据的程序设计实例较多数据的程序设计实例2022-6-26第第2页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组2022-6-26第第3页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组2022-6-26第第4页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组4.1 数组及其元素控制Rate945.39873210下标标明了元素在数组中
2、的位置 数组元素数组元素下标定义:把具有定义:把具有相同类型相同类型的若干变量按的若干变量按有序有序的形式组织起来就是数组。的形式组织起来就是数组。说明:说明:(1)数组是可以在内存中数组是可以在内存中连续存储连续存储多个元素的结构多个元素的结构。 (2)数组中的所有元素必须属于数组中的所有元素必须属于相同的数据类型相同的数据类型。2022-6-26第第5页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组4.1 数组及其元素控制数组的分类数组的分类按维数划分:按元素类型划分: 一维数组二维数组多维数组数值数组字符数组结构体数组指针数组2022-6-26第第6页页石
3、家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组4.1 数组及其元素控制数组的分类数组的分类2022-6-26第第7页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组1.1.一维数组的定义一维数组的定义&定义方式:定义方式: 数据类型数据类型 数组名数组名 表达式表达式 ; &内存分配内存分配 a00145a1a2a3a4a523a编译时分配连续内存编译时分配连续内存内存字节数内存字节数=数组长度数组长度* sizeof(元素数据类型元素数据类型)数组名表示内存首数组名表示内存首地址,是地址,是地址常量地址常量4.1.1 一维数组正确的定
4、义方法:正确的定义方法:int num50;char list20;double level6;错误的定义方法:错误的定义方法:int num;num=20;Int anum; # define N 20. . . int codesN;例例 int a6;2022-6-26第第8页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组2.2.一维数组元素的引用一维数组元素的引用&数组必须先定义,后使用;数组必须先定义,后使用; &数组元素的表示形式:数组名数组元素的表示形式:数组名 下标下标 ;&只能逐个引用数组元素,不能一次引用整个数组;只能逐个引用数组元素,不能一
5、次引用整个数组; 4.1.1 一维数组int num5; /*定义数组定义数组num*/num数组包含数组包含5个元素:个元素:num0,num1,num2,num3,num4注意:注意:C C语言中规定,数组元素下标从语言中规定,数组元素下标从0 0开始;不开始;不存在存在num5num5元素元素数组元素的赋值:数组元素的赋值:for(i=0;i5;i+) scanf(“%d”,&sumi); 两个数组之间的赋值:两个数组之间的赋值:for(i=0;i5;i+) bi=sumi; 例例 int a10; printf(“%d”,a); ( )必须必须 for(j=0;j10;j+) prin
6、tf(“%dt”,aj); ( )2022-6-26第第9页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组3.3.一维数组的初始化一维数组的初始化&C C语言对数组初始化的规定:语言对数组初始化的规定:$可以只给部分元素赋初值。可以只给部分元素赋初值。 例:例:intint a10=0,1,2,3; a10=0,1,2,3;$如不给数组初始化,则全部元素隐含均为如不给数组初始化,则全部元素隐含均为0 0值。值。$只能给元素逐个赋值,不能给数组整体赋值。只能给元素逐个赋值,不能给数组整体赋值。 如:如:intint a3=2,2,2; a3=2,2,2; 不能写成
7、:不能写成:intint a3=2; a3=2;$如给全部元素赋值,则在数组说明中,可以不给出数如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。组元素的个数。 如:如:intint a=1,2,4,5,6; a=1,2,4,5,6;4.1.1 一维数组2022-6-26第第10页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组3.3.一维数组的初始化一维数组的初始化&其他的初始化情况:其他的初始化情况:判断下面的语句是否正确判断下面的语句是否正确intint arr10 = 10,9,8,7,6,5,4,3,2,1,0; arr10 = 10,9,8,
8、7,6,5,4,3,2,1,0; intint arr10 = 9,8,7,5; arr10 = 9,8,7,5; int arrint arr = 9,8,7; = 9,8,7; int arrint arr=;=; 4.1.1 一维数组/错误!越界了错误!越界了 /正确,后面的正确,后面的6 6个元素未初始化个元素未初始化/正确:元素个数为正确:元素个数为 3 3/错误,到底是几个元素?错误,到底是几个元素?2022-6-26第第11页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组例4.1:输入5个数,用冒泡排序算法,按照降序排列这一组数(从大到小)。冒泡排
9、序思路:对尚未排序的各元素从头到尾依次比较相邻的两个元素是否逆序,若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。可以看出如果有 n 个元素,那么一共要进行 n-1 轮比较,第 i 轮要进行 j=n-i 次比较。(如:有5个元素,则要进行5-1轮比较。第3轮则要进行5-3次比较) 。2022-6-26第第12页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组#include #define N 5void main()int gradeN,temp,i,j;printf(请
10、输入请输入%d%d个数个数,N);for(i=0;iN;i+)scanf(%d,&gradei);for(i=0;iN;i+)for(j=0;jN-i-1; j+)/找出最小的数,放在最后找出最小的数,放在最后if(gradej gradej+1) temp = gradej+1;gradej+1 = gradej;gradej = temp;for(i=0;iN;i+)printf(%d,gradei);2022-6-26第第13页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组#include #define N 5void main()int gradeN,
11、temp,i,j;printf(请输入请输入%d%d个数个数,N);for(i=0;iN;i+)scanf(%d,&gradei);for(i=0;iN;i+)for(j=i;jN-1; j+)/找出最大的数,放在最前面找出最大的数,放在最前面if(gradei gradej+1) temp = gradej+1;gradej+1 = gradei;gradei = temp;for(i=0;iN;i+)printf(%d,gradei);2022-6-26第第14页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组思路思路(1 1)将待插入数,顺序与原有序数据比较
12、,寻找待插)将待插入数,顺序与原有序数据比较,寻找待插入位置。入位置。(2 2)将待插入位置处的数据及其后续数据依此后移,留出)将待插入位置处的数据及其后续数据依此后移,留出插入位置。插入位置。(3 3)将该数插入。)将该数插入。例4.2:如果一个数组中保存的元素是有序的(由小到大),向这个数组中插入一个数,使得插入后的数组元素依然保持有序。 数组应用42022-6-26第第15页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组数组应用4#define N 5#include void main()int numN+1=23,45,60,67,88,in;int
13、i,j;printf(n 请输入一个要插入的数:请输入一个要插入的数:););scanf(%d,&in);for(i=0;iin) break;for(j=N;ji;j-) numj=numj-1;numi=in;printf(n 插入后的数组元素:插入后的数组元素:n);for(i=0;iN+1;i+) printf(%d ,numi);printf(n);2022-6-26第第16页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组4.1.2 二维数组int i, j, num42;for (i = 0; i = 3; i+) for (j = 0; j =1
14、; j+) scanf(%d,&numij); ijnumij0010001200103001140020500216003070031800二维数组的赋值:二维数组的赋值:2022-6-26第第17页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组二维数组的初始化:二维数组的初始化:&分行初始化分行初始化 intint a23=1,2,3,4,5,6; a23=1,2,3,4,5,6; ( (全部初始化全部初始化) ) intint a23=1,2,4; a23=1,2,4; ( (部分初始化部分初始化) )&按元素排列顺序初始化按元素排列顺序初始化 intin
15、t a23=1,2,3,4,5,6; a23=1,2,3,4,5,6; ( (全部初始化全部初始化) ) int int a23=1,2,3; a23=1,2,3; ( (部分初始化部分初始化) )&第一维的长度可以省略,但第二维的长度不第一维的长度可以省略,但第二维的长度不能省。能省。 intint a3=1,4,5; a3=1,4,5; int int a3=1,2,3,4,5; a3=1,2,3,4,5;2022-6-26第第18页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组程序举例程序举例【例例4.34.3】 已知矩阵已知矩阵a a,先输出,先输出a,
16、a,再求它的转置矩阵再求它的转置矩阵b b,并输出并输出b b。a=1 2 34 5 6b=1 42 53 6#include void main() int a23=1,2,3,4,5,6; int b32,i,j; printf(“输出数组输出数组 a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij;printf(n); printf(“数组数组b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); 思路:1.1.定义数组定义数组a a和数组
17、和数组b b;2.2.赋值或初始化数组赋值或初始化数组a a;3.3.搞清数组搞清数组a a中各元素下标与数组中各元素下标与数组b b中元素下标的关系;中元素下标的关系;4.4.将数组将数组a a中元素的值按中元素的值按3 3中确定的关系赋给数组中确定的关系赋给数组b b中的元素。中的元素。2022-6-26第第19页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组【例【例4.4 4.4 】输入学号分别为输入学号分别为1 1,2 2和和3 3的学生两门课程的成绩,的学生两门课程的成绩,然后输出。要求程序运行结果如下:(采用二维数组存储)然后输出。要求程序运行结果如
18、下:(采用二维数组存储) 输入学号输入学号 1 1 两两门课程门课程的成绩:的成绩:65 5665 56 输入学号输入学号2 2 两两门课程门课程的成绩:的成绩:78 8078 80 输入学号输入学号3 3 两两门课程门课程的成绩:的成绩:89 6689 66 学员的学号及其两个学期的成绩为:学员的学号及其两个学期的成绩为: 学号学号 第一第一门课门课 第二第二门课门课 1 65 561 65 56 2 78 80 2 78 80 3 89 66 3 89 66 Press any key to continue Press any key to continue思路:1.1.定义二维数组定义
19、二维数组student32student32;2.2.赋值或初始化数组赋值或初始化数组studentstudent;3.3.按给定格式输出;按给定格式输出;本程序的关键在于怎样才能按给定的行本程序的关键在于怎样才能按给定的行, ,列格式输入、输出。列格式输入、输出。2022-6-26第第20页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组int i,j,student32;for(i = 0;i 3;i+) printf(n 输入学号 %d 两门课程的成绩:,i+1); for(j = 0;j 2;j+) scanf(%d,&studentij);printf(
20、n 学员的学号及其两门课程的成绩为:n );printf(n t学号t第一学期t第二学期);for(i = 0;i 3;i+) printf(nt); printf(%dt,i+1); for(j = 0;j 2;j+) printf(%dtt,studentij); printf(n );2022-6-26第第21页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组4.2 字符数组与字符串字符数组与字符串一维字符数组:一维字符数组:定义:定义: char ch10;(1)逐个字符初始化:逐个字符初始化:char ch5=H,e,l,l,o; (2)用字符串常量初始
21、化:用字符串常量初始化:char ch6=“Hello”; 注意下面两种初始化方法的区别:注意下面两种初始化方法的区别: char ch=H,e,l,l,o; char ch=“Hello”; h e l l oh e l l o02314 h e l l o 0h e l l o 00231452022-6-26第第22页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组二维字符数组:二维字符数组: 定义:定义:char ch57; 初始化:初始化:例例 char fruit7=A,p,p,l,e,O,r,a,n,g,e, G,r,a,p,e,P,e,a,r, P
22、,e,a,c,h;fruit0fruit1fruit2fruit3fruit4Apple00Orange0Grape00Pear000Peach002022-6-26第第23页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组二维数组初始化:二维数组初始化: 例例 char fruit7=“Apple”,”Orange”, ”Grape”,”Pear”,”Peach”;fruit0fruit1fruit2fruit3fruit4Apple00Orange0Grape00Pear000Peach002022-6-26第第24页页石家庄经济学院信息工程学院石家庄经济学院
23、信息工程学院 C语言课程组语言课程组字符串的输入输出:字符串的输入输出: 逐个字符输入、输出:逐个字符输入、输出:%c; 整个字符串的输入、输出:整个字符串的输入、输出:%s;void main() char str5; int i; for(i=0;i5;i+) scanf(“%c”, &stri); for(i=0;i5;i+) printf(“%c”, stri);void main() char str5; scanf(“%s”, str); printf(“%s”, str);%s,%s,要求用字符数组名要求用字符数组名, ,不加不加&, ,输入串长度应输入串长度应小于数组维数小于数
24、组维数, ,遇空格遇空格或回车结束自动加或回车结束自动加00输入:输入:ab de输出:输出:ab输入:输入:ab de输出:输出:ab de2022-6-26第第25页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组例例 void main( ) char a =“Hello”; printf(“%s”,a); 结果:结果:Hello#-=* h e l l oh e l l o02314结果:结果:Hello用用“%s”%s”输出时,遇输出时,遇00结束结束例例 void main( ) char a5=H,e,l,l,o; printf(“%s”,a); 有
25、问题有问题!2022-6-26第第26页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组void main() char a=h,e,l,0,l,o,0; printf(%s,a);例例输出:输出:hel h e l 0 l o 0数组中有多个数组中有多个00时时, ,遇第一个结束遇第一个结束2022-6-26第第27页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组【例例4.5】 字符串输入举例字符串输入举例#include void main() char a15,b5,c5; scanf(%s%s%s,a,b,c); print
26、f(a=%snb=%snc=%sn,a,b,c); scanf(%s,a); printf(a=%sn,a);运行情况:运行情况:输入:输入:How are you?输出:输出:a=How b=are c=you?输入:输入:How are you?输出:输出:a=Howscanfscanf中中%s%s输入时输入时, ,遇空格遇空格或回车结束或回车结束 H o w 0 a r e 0 y o u ? 0 若输入:若输入:How are you?How are you?输出输出结果是什么?结果是什么?2022-6-26第第28页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组
27、语言课程组v常用的字符串处理函数常用的字符串处理函数包含在头文件包含在头文件 string.hstring.hstring.hStrlen(计算字符串长度计算字符串长度)Strcpy(复制字符串复制字符串)Strcmp(比较字符串比较字符串)Strcat(连接字符串连接字符串)puts(字符串输出函数字符串输出函数)gets(字符串输入函数字符串输入函数)stdio.h2022-6-26第第29页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组【例例4.6】输入一行字符(请包含空格),计算空格数。输入一行字符(请包含空格),计算空格数。#include void
28、main() char line30; int i,count = 0; printf(n 请输入一行字符:请输入一行字符:n ); gets(line); i=0; while(linei != 0) if(linei = ) count+;i+; printf(n 其中的空格总数为其中的空格总数为 %d n ,count);C is a programming language在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。每次循环执行时,都会更新计数器 i 和 count。其中的空格总数为 42022-6-26第第30页页石家庄经济学院信息工程学院石家庄经济学院信息工程
29、学院 C语言课程组语言课程组(1 1)strlenstrlen( (字符串字符串) ) 功能:计算字符串中字符的个数;功能:计算字符串中字符的个数; 返回值:整形数,字符串实际长度,不包括返回值:整形数,字符串实际长度,不包括0 0 ; 例如:例如:d=strlen(“Beijingd=strlen(“Beijing”); ”); 运行结果:运行结果:d=7d=7(2 2)strcpystrcpy( (目标字符数组目标字符数组, ,源字符数组源字符数组) ) 功能:将源字符串拷贝到目标字符数组中。功能:将源字符串拷贝到目标字符数组中。 返回值:目标数组的首地址。返回值:目标数组的首地址。 说明
30、说明:(:(1 1)目标字符数组)目标字符数组必须足够大必须足够大; (2 2)拷贝时拷贝时00一同拷贝一同拷贝; (3 3)不能不能使用赋值语句为一个字符数组赋值使用赋值语句为一个字符数组赋值;例例 char str120; str1=“Hello!”; ( ) 可以初始化,可以初始化, 或使用或使用strcpy()函数给字符数组赋值。函数给字符数组赋值。正确方法:正确方法:char str120=“Hello!”,str220; strcpy(str2,str1);2022-6-26第第31页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组(3 3)strcm
31、pstrcmp( (字符串字符串1,1,字符串字符串2)2) 功能:比较两个字符串。功能:比较两个字符串。 比较规则:比较规则:对两串从左向右逐个字符比较(对两串从左向右逐个字符比较(按按ASCIIASCII码码值比值比),直到),直到遇到不同字符或遇到不同字符或00为止为止。 返回值:返回值:返回返回intint型整数型整数;(a a)若字符串若字符串1 1 1 字符串字符串2 2,返回正整数返回正整数;(c c)若字符串若字符串1= 1= 字符串字符串2 2,返回零,返回零;说明:字符串比较不能用说明:字符串比较不能用“= =”,“= =”,必须用必须用strcmpstrcmp()函数。(
32、)函数。 if(strcmp(“Tom”,“John”)= =0) printfif(strcmp(“Tom”,“John”)= =0) printf(“(“两串相同两串相同);); else printf else printf(“(“两串不同两串不同”) );(4) strcat(4) strcat( (字符数组字符数组1,1,字符数组字符数组2)2) 功能:把字符数组功能:把字符数组2 2连接到字符数组连接到字符数组1 1的后面。的后面。 返回值:返回字符数组返回值:返回字符数组1 1的首地址。的首地址。 说明说明(a a)字符数组字符数组1 1必须足够大必须足够大; (b b)连接前连
33、接前, ,两串均以两串均以00结束结束; ;连接后连接后, ,串串1 1的的00取消取消, ,新串最后新串最后加加00; (c c)连接后字符串的总长度将是字符串连接后字符串的总长度将是字符串1 1的长度加上字符串的长度加上字符串2 2的长度。的长度。 例如:例如:char ch120=“Hello”,ch2=“world!”;char ch120=“Hello”,ch2=“world!”; strcat(ch1,ch2); strcat(ch1,ch2); 则则ch1ch1中的字符串为:中的字符串为:Hello world!Hello world!2022-6-26第第32页页石家庄经济学院
34、信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组#include #include void main()char username15,pwd15;printf(n 请输入用户名:请输入用户名: );gets(username);printf(n 请输入密码:请输入密码: );gets(pwd);if(strcmp(username,John)=0) & (strcmp(pwd,123456)=0)printf(n 您已成功登录您已成功登录 n );elseprintf(n 用户名和用户名和/或密码无效或密码无效 n ); 例4.7要求用户输入用户名和密码,判断是否允许登录 请
35、输入用户名:John 请输入密码: 123456 您已成功登录 请输入用户名: john 请输入密码: 123456 用户名和/或密码无效2022-6-26第第33页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组上机作业:(1 1)读)读1010个整数存入数组,使用一维数组存储这个整数存入数组,使用一维数组存储这1010个数,个数,找出其中最大值及其下标找出其中最大值及其下标. .(2 2)使用二维数组存储这)使用二维数组存储这1010个数,找出其中最大值及其个数,找出其中最大值及其下标。下标。(3 3)利用数组输入)利用数组输入5 5种商品的价格,计算合计费用
36、,并输种商品的价格,计算合计费用,并输出出 。(4)4)用户从键盘输入字符串,存储于字符数组中,完成如用户从键盘输入字符串,存储于字符数组中,完成如下功能:下功能:a)a)计算并输出该字符串的长度。计算并输出该字符串的长度。b)b)把该字符串拷把该字符串拷贝到另一个字符数组中,并输出。贝到另一个字符数组中,并输出。c)c)把这两个串连接形成把这两个串连接形成一个新串,输出。一个新串,输出。2022-6-26第第34页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组 结构体用于存储数据类型不相同数据类型不相同的一组数据。4.3 结构体结构体numnamesexmat
37、hcomputer01MaryF899002JohnM78.587.503PeterF677804RoseM97.595.605KateF64702022-6-26第第35页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组struct student char num3; char name20; char sex; float math; float computer;num name sexstudent 结构体定义并不预留内存 结构体定义放置在程序的开始部分,位于头文件声明之后 math 结构体定义仅描述了一个结构的形式。如果要在程序里使用结构,需要声明结构
38、体变量。computer4.3 结构体结构体2022-6-26第第36页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组struct student char num3; char name20; char sex; float math; float computer;struct student student1,student2;I.先定义结构体,再声明结构体变量struct student char num3; char name20; char sex; float math; float computer;student1,student2;II.在定
39、义结构体类型的同时声明结构体变量struct char num3; char name20; char sex; float math; float computer;student1,student2;III. 直接声明结构体变量声明一个类型为 student 结构体的变量,将会为该变量分配内存,内存值为所有成员的内存之和。 2022-6-26第第37页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组struct date int month; int day; int year;struct int num; char name20; char sex; st
40、ruct date birthday; float score;student1,student2;结构体变量成员的表示方法:结构体变量名.成员名例如:student1.num、student2.sex、student1.birthday.month嵌套结构体2022-6-26第第38页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组结构体变量的初始化结构体变量的初始化内存student3struct student student3=3,Yao Ming ,M,90.5; 3Yao MingM赋值的顺序应与成员声明时的顺序一样;允许初始化语句中的值的数目比结构体
41、成员数目少。student3.sex90.5student3.score2022-6-26第第39页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组student1student1.num=1;=Zhang Zi Liang;student1.sex=M;printf(请输入成绩:请输入成绩:n);scanf(%f,&student1.score);结构体变量赋值1Zhang Zi Liang Mq 用输入语句或赋值语句来给结构体变量的各个成员赋值7878student2 = studen
42、t1; student21Zhang Zi Liang M782022-6-26第第40页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组结构体的应用:结构体的应用:例例4.8 4.8 使用结构体存储表格中的数据使用结构体存储表格中的数据numnamesexmathcomputer01MaryF899002JohnM78.587.503PeterF677804RoseM97.595.605KateF6470提示:结构体成员按照每个人的具体信息设计。提示:结构体成员按照每个人的具体信息设计。2022-6-26第第41页页石家庄经济学院信息工程学院石家庄经济学院信息工
43、程学院 C语言课程组语言课程组struct studentchar num3;char name6;char sex;double score2;void main()struct student stu1=01,Mary,F,89,90;struct student stu2=02,John,M,78.5,87.5;struct student stu3=03,Peter,F,67,78;struct student stu4=04,Rose,M,97.5,95.6;struct student stu5=“05”,“Kate”,F,64,70; 2022-6-26第第42页页石家庄经济学院
44、信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组例4.9:根据computer的成绩,输出80分以下的学生的详细信息。 使用结构示例numnamesexmathcomputer01MaryF899002JohnM78.587.503PeterF677804RoseM97.595.605KateF64702022-6-26第第43页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组#includestruct student char num3;/*学号学号*/ char name6;/*姓名姓名*/ char sex;/*性别性别*/ double s
45、core2;/*成绩成绩*/;void main() struct student stu1=01,Mary,F,89,90; struct student stu2=02,John,M,78.5,87.5; struct student stu3=03,Peter,F,67,78; struct student stu4=04,Rose,M,97.5,95.6; struct student stu5=05,Kate,F,64,70; printf(computer80分以下的学生名单如下:分以下的学生名单如下:n); if(stu1.score180) printf(%st%st%ct%5
46、.2ft%5.2fn, stu1.num,,stu1.sex,stu1.score0,stu1.score1); if(stu2.score180) printf(%st%st%ct%5.2ft%5.2fn, stu2.num,,stu2.sex,stu2.score0,stu2.score1); if(stu3.score180) printf(%st%st%ct%5.2ft%5.2fn, stu3.num,,stu3.sex,stu3.score0,stu3.score1); if(stu1.score180) printf(%st%st%ct%5.2ft%5.2fn, stu3.num,,stu3.sex,stu3.score0,stu4.score1);2022-6-26第第44页页石家庄经济学院信息工程学院石家庄经济学院信息工程学院 C语言课程组语言课程组struct student int num3; char name6; char sex; double score2;stu30;q 元素为结构体类型的数组称为结构体数组。q 在实际应用中,经常用结构体数组来表示具有相同数据结构的一个群体。例如一个班的学员档案,一个公司的职工档案等。定义了一个结构体数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 便利店店长合同协议书
- 租铺面餐饮合同协议书
- 合同协议书完整版
- 施工合同解除部分协议书
- 美容美体项目计划书
- 废船转让合同协议书模板
- 中间人合同协议书范本
- 创业计划书炸鸭爪
- 彩票店合伙合同协议书
- 奶粉销毁合同协议书范本
- 2025年物联网工程师考试试题及答案
- 肥胖症诊疗指南(2024年版)解读
- DBJ50-T-078-2016重庆市城市道路工程施工质量验收规范
- 中国历史地理智慧树知到期末考试答案章节答案2024年北京大学
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- C-TPAT反恐程序文件(完整版)
- 艾默生PEX系列精密空调技术手册
- 发改委招标代理服务收费管理暂行办法
- 10kV备自投调试报告
- 名著导读《简爱》ppt课件(58页)
- 人教部编版初中英语中考100个长难句实例分析
评论
0/150
提交评论