书签 分享 收藏 举报 版权申诉 / 47
上传文档赚钱

类型C第六章数组课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5218148
  • 上传时间:2023-02-17
  • 格式:PPT
  • 页数:47
  • 大小:152.82KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C第六章数组课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第六 数组 课件
    资源描述:

    1、82945637617188888888881111111111111118 8 88888888 C语言为这些数据,提供了一种构造数据类型:语言为这些数据,提供了一种构造数据类型:数组。数组。所谓数组所谓数组就是一组具有相同数据类型的数据就是一组具有相同数据类型的数据的有序集合。的有序集合。数组数组一维数组一维数组二维数组二维数组数组定义数组定义元素引用元素引用初始化初始化程序举例程序举例第第6 6章章 数组数组1)1)定义一个数组,名为定义一个数组,名为a,a,有十个元素,元素名为有十个元素,元素名为 a0a0、a1 a1.a9a9,且都是整型量。且都是整型量。2)2)数组名数组名 a a

    2、 表示该数组中第一个元素表示该数组中第一个元素 a0 a0 的地址。数组名的地址。数组名是地址常量。是地址常量。3)3)经过定义的数组,编译后,会分配到一段连续的内存单元。经过定义的数组,编译后,会分配到一段连续的内存单元。其首地址即数组名其首地址即数组名 a a。4)4)数组定义后,编译时无越界保护。数组定义后,编译时无越界保护。a,a0a1a2a9void main()char a20;int i;for(i=0;i=14;i+)scanf(“%c”,&ai);printf(“n”);for(i=0;i=14;i+)printf(“%c”,ai);例:例:int a10=2,4,6,8,1

    3、0,12,14,16,18,20;char a5=C,h,i,n,a;char c6=“China”;或或char c6=“China”;也可也可 int a=2,4,6,8,10,12,14,16,18,20;char c=“China”;通过赋初值定义通过赋初值定义数组的大小数组的大小int a10=1;int b2=1,2,3;不够不够,其它自动赋其它自动赋为为0,0,多余则出错多余则出错#includevoid main()int i,max,a10;printf(input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&ai);max=a0;for(i

    4、=1;imax)max=ai;printf(maximum=%dn ,max);例:例:输入输入10个数,求出其中最大值个数,求出其中最大值如何求出最大如何求出最大值的下标?值的下标?例:例:将数组的各个元素倒过来存储。将数组的各个元素倒过来存储。#includevoid main()int i,t,a11;printf(input 10 numbers:n);for(i=1;i11;i+)scanf(%d,&ai);for(i=1;i6;i+)t=ai;ai=a11-i;a11-i=t;for(i=1;i11;i+)printf(%d,ai);例例:用数组计算输出前用数组计算输出前4040项

    5、项FibonacciFibonacci序列序列void main()double a40;int k;a0=1;a1=1;for(k=2;k40;k+)ak=ak-1+ak-2;for(k=0;k40;k+)if(k%5=0)printf(“n”);printf(“%10.0f”,ak);a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23在内存中按行顺序存放在内存中按行顺序存放u 二维数组由若干个一维数组组成二维数组由若干个一维数组组成u 二维数组名也是一个地址常量二维数组名也是一个地址常量u 二维数组元素的地址二维数组元素的地址二维数组二维数组a

    6、a被看作数组名被看作数组名分别为分别为a0,a1,a2a0,a1,a2三三个一维数组元素组成个一维数组元素组成二维数组名二维数组名a a是一个地址是一个地址常量常量a,a0 a1 a2a00a10a20intint a23;a23;下标法:下标法:数组名数组名 下标表达式下标表达式11下标表达式下标表达式22例如:例如:double w42;w01 wij wi+jj+k 每个下标都不每个下标都不要超越数组的要超越数组的上下界上下界(1)所所赋赋初值个数与数组元素的个数相同初值个数与数组元素的个数相同int a43=1,2,3,4,5,6,7,8,9,10,11,12;(2)每行所赋初值个数与

    7、数组元素的个数不同每行所赋初值个数与数组元素的个数不同int a43=1,2,4,5,7,10;(3)所所赋赋初值行数少于数组行数初值行数少于数组行数int a43=1,2,4,5;(4)赋初值时省略行花括号对赋初值时省略行花括号对int a43=1,2,4,5;通过赋初值定义二维数组的大小通过赋初值定义二维数组的大小int a3=1,2,3,4,5,6,8;int a43=1,2,3,4,5,6,8;int c3=1,2,3,4,5;int c23=1,2,3,4,5(1)(1)第二维的体积不可省略第二维的体积不可省略;(2)(2)初值个数能被第二维的初值个数能被第二维的值除尽时,商即为第一

    8、维的值除尽时,商即为第一维的大小;否则商数加大小;否则商数加1 1是第一是第一维的大小。维的大小。例例:通过键盘给通过键盘给2 23 3的二维数组输入数据的二维数组输入数据,然后输出。然后输出。void main()int a23,i,j;printf(“Enter data by line:n”);for(i=0;i2;i+)for(j=0;j3;j+)scanf(“%d”,&aij);printf(“Output a 2-dimension array:n”);for(i=0;i2;i+)for(j=0;j3;j+)printf(“%4d”,aij);printf(“n”);1 2 32

    9、10 20 30思考思考:for(i=0;i3;i+)for(j=0;j2;j+)scanf(“%d”,&aji);按列按列输入输入例:例:一个学习小组有一个学习小组有5 5个人,每个人有个人,每个人有3 3门课的考试门课的考试成绩。求全组各科的平均成绩和各科总平均成绩。成绩。求全组各科的平均成绩和各科总平均成绩。#includevoid main()int i,j,s,l,v3,a53;printf(input scoren);for(i=0;i3;i+)s=0;for(j=0;j5;j+)scanf(%d,&aji);s=s+aji;vi=s/5;l=(v0+v1+v2)/3;printf

    10、(Average:%d,%d,%dn,v0,v1,v2);printf(Total average:%dn,l);例:找出矩阵中的最大元素及其位置。例:找出矩阵中的最大元素及其位置。#include#include#includevoid main()int i,j,m,n,row,col,d101101;m=6;n=10;srand(unsigned)time(NULL);for(i=1;im+1;i+)for(j=1;jn+1;j+)dij=rand()100+1;printf(%4d,dij);printf(“n”);row=1;col=1;for(i=1;im+1;i+)for(j=1

    11、;jdrowcol)row=i;col=j;printf(n(%d,%d):%d,row,col,drowcol);int maxnum=10;int result;srand(unsigned)time(NULL);result=rand()%maxnum;/产生产生0 maxnum-1之间的随机数之间的随机数 例例:求一个矩阵的转置矩阵求一个矩阵的转置矩阵#define M 3#define N 4void main()int aMN,bNM,k,j;for(i=0;iM;i+)for(j=0;jN;j+)scanf(“%d”,&aij);bji=aij;for(i=0;iN;i+)for

    12、(j=0;jM;j+)printf(“%4d”,bij);printf(“n”);3 5 6 7 6 8 2 92 4 5 62 4 5 66 8 2 93 5 6 7 练习练习1:将一个:将一个n阶方阵转置。阶方阵转置。练习练习2:求一个方阵对角线元素之和。:求一个方阵对角线元素之和。练习练习3:计算两个矩阵的乘积。:计算两个矩阵的乘积。练习练习4:有一个已排好序的数组,今输入:有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入一个数,要求按原来排序的规律将它插入数组中。数组中。char c=C,p,r,o,g,r,a,m;char b=“C program”;char c=“

    13、C program”;不同之处?不同之处?可用可用scanf函数和函数和printf函数一次性输入输出一函数一次性输入输出一个字符数组中的字符串,而不必使用循环语句个字符数组中的字符串,而不必使用循环语句逐个地输入输出每个字符。逐个地输入输出每个字符。void main()char c=“Im a computer teacher.”;printf(“%s n”,c);void main()char c30;printf(“Please input a string:n”);scanf(“%s”,c);printf(“%sn”,c);有空格和无空有空格和无空格的字符串?格的字符串?strcpy

    14、 char*strcpy(char dest,char scr)strcat char*strcat(char dest,char scr)atoi int atoi(char s)itoa char*itoa(int n,char s,int radix)strcmp int strcmp(char s1,char s2)strlen int strlen(char s)strupr/strlwr char*strupr(char s)gets char*gets(char s)puts int puts(char s)接受空格接受空格u在定义时赋初值在定义时赋初值 char char ca

    15、36=“A”,”BBB”,”CCCCC”ca36=“A”,”BBB”,”CCCCC”char ca6=“A”,“BBB”,char ca6=“A”,“BBB”,“CCCCC”;“CCCCC”;举例:举例:char a34=“A”,“BB”,“BB”,“CCC”;“CCC”;a0a1a2gets(a2);/gets(a2);/*重新赋值重新赋值*/例:例:输入字符串,将其中所有大写英文字母变输入字符串,将其中所有大写英文字母变换为小写字母。换为小写字母。#include#includevoid main()char str255;int len,i;scanf(%s,str);len=strle

    16、n(str);/*求字符串的长度求字符串的长度*/for(i=0;i=A&stri=Z)stri=stri+32;printf(%s,str);例:例:去掉字符串中的所有数字字符。去掉字符串中的所有数字字符。#include#includevoid main()char s41;int i,n;gets(s);i=0;n=0;while(si)if(si=0&si=9)i+;continue;sn=si;n+;i+;sn=0;printf(%s,s);例:判断字符串是否为回文例:判断字符串是否为回文#include#includevoid main()char s41;int i,j,leng

    17、th;gets(s);length=strlen(s);for(i=0,j=length-1;ij;i+,j-)if(sj!=si)break;if(ij)printf(No);else printf(Yes);#include#includevoid main()char str10,t10,k;gets(str);for(k=1;k0)strcpy(str,t);puts(str);输入输入:ChinaU.S.ACanadaKoreaJapan输出输出:Canada例例:输入输入5个字符串个字符串,将其中最小者打印出来将其中最小者打印出来例:从键盘中输入阿拉伯数字例:从键盘中输入阿拉伯数字1-7,将其转换为,将其转换为“Monday”-“Sunday”后输出。后输出。#include void main()char week 10=,Monday,Tuesday,Wednesday,Thursday,Friday,saturday,Sunday;int no;while(1)printf(Enter week No:);scanf(%d,&no);if (no7)break;puts(weekno);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C第六章数组课件.ppt
    链接地址:https://www.163wenku.com/p-5218148.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库