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

类型c语言第7章数组与字符串课件.ppt

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

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

    特殊限制:

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

    关 键  词:
    语言 数组 字符串 课件
    资源描述:

    1、一一.概念概念C提供的数据类型有:标准型和构造型标准型和构造型。在遇到的大量编程问题中仅用标准型是解决不了的。如:排序,查询,统计,线性方程组求解,矩阵运算等需要用构造类型,数组是其中之一。数组数组-具有相同类型数据的集合。数组中每一个数据称为元素,每一个元素均用统一的数组名和相应的下标确定。数组定义数组定义格式:格式:一维一维 类型说明符 数组名常量二维二维 类型说明符 数组名常量 常量例:int num10;float score34;在程序中定义了一维数组和二维数组;在程序中定义了一维数组和二维数组;编译时在内存开辟连续一批单元,存编译时在内存开辟连续一批单元,存放数组各元素的值放数组各

    2、元素的值。2 bytesnum0num1num2 num9.4 bytes.score00score01score02 score23功能功能:定义数组名定义数组名,类型和大小。类型和大小。num 整型整型 10个元素score 实型实型 12个元素数组元素赋初值数组元素赋初值 指在定义的同时可给数组各元素或部分元素赋初值,即初始化。在编译时除分配一定的单元,同时将初值赋给相应单元(元素),否则是随机值。如果给全部元素赋值,则在数组定义时,可以不给出数组长度,系统将根据初值的个数自动确定数组的长度。num0num1.019static-表示静态存储;若定义成:static int num10;

    3、所有元素均赋 0;部分元素赋初值:static int num10=0,1,2,3,4;其它元素均赋 0;num9一维数组:一维数组:static int num10=0,1,2,3,4,5,6,7,8,9;也可 static float score34=1,1,1,1,2,2,2,2,3,3,3,3;也可 static float score 4=1,1,1,1,2,2,2,2,3,3,3,3;而 static float score34;则所有元素均赋 0;部分元素赋初值部分元素赋初值:static float score34=1,2,3;表示score00;score10;score20

    4、分别赋1,2,3,其它元素均为 0。static float score34=1,7,8;表示score 00=1;score10=7,score11=8,其它元素均为 0;二维数组二维数组static float score34=1,1,1,1,2,2,2,2,3,3,3,3,;对数组元素的操作对数组元素的操作 在C中,只能对已定义的数组元素逐个的操作(赋值、输出等),不可对整个数组一次进行赋值,输出等。凡是变量可出现的地方,数组元素变量可出现的地方,数组元素也可出现也可出现。数组元素引用格式:一维 数组名 二维 数组名 一维数组各元素一维数组各元素:赋值赋值,输出输出main()int n

    5、um10,i;for(i=0;i10;i+)numi=i+1;for(i=0;i10;i+)numi*=10;for(i=0;i10;i+)printf(num%d=%d n,i,numi);main()int num10,i;for(i=0;i10;i+)scanf(%d,&numi);for(i=0;i10;i+)printf(num%d=%d n,i,numi);二维数组各元素二维数组各元素:赋值赋值,输出输出main()int score34;int i,j;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&scoreij);for(i=0;i3;i+)for

    6、(j=0;j4;j+)printf(score%d%d=%d,i,j,scoreij);printf(n);数组在编程中应用数组在编程中应用例:某班例:某班3人人,2门课门课,试编程试编程:1.键盘输入每个人学号和2门课成绩;2.求出每人平均分和每门课的平均分。变量设置变量设置:num3 存放每个人的学号score32 存放30人,每人9门课成绩aver3 存放每人平均成绩aver12 存放每门课平均成绩 main()int i,j;int score32,num3,sum;float aver3,aver12;for(i=0;i3;i+)scanf(%d,&numi);for(j=0;j2;

    7、j+)scanf(%d,&scoreij);/*输入每人学号和2门课成绩*/for(i=0;i3;i+)sum=0;for(j=0;j2;j+)sum+=scoreij;averi=sum/2;/*求出每人平均分*/for(i=0;i3;i+)printf(Student.%d t%f n,i+1,averi);/*输出每门课平均分*/for(i=0;i2;i+)sum=0;for(j=0;j3;j+)sum+=scoreji;aver1i=sum/3;/*求每门课平均分*/for(i=0;i2;i+)printf(Course.%d t%f n,i+1,aver1i);/*输出每门课平均分*

    8、/例:已知三行三列数组各元素值例:已知三行三列数组各元素值,试分别求各行元素试分别求各行元素,各列元素和每个元素之和。各列元素和每个元素之和。main()int i,j;static int a44=3,5,6,0,2,1,4,0,3,5,4,0,0,0,0,0;for(i=0;i3;i+)for(j=0;j3;j+)ai3+=aij;a3j+=aij;a33+=aij;for(i=0;i4;i+)for(j=0;j4;j+)printf(%5d,aij);printf(n);第第0列各元素之和列各元素之和所有元素之和所有元素之和第第 0 行各行各 元素之和元素之和3 5 6 xx2 1 4

    9、xx3 5 4 xxxx xx xx xx例:矩阵相乘例:矩阵相乘:C=A*B条件条件:A阵的列数=B阵的行数 乘积矩阵的行数为A阵行,列为B阵列main()static int a33=1,2,3,4,5,6,7,8,9;static int b32=1,2,3,4,5,6;static int c32;int i,j,k;for(i=0;i3;i+)for(j=0;j2;j+)for(k=0;k3;k+)cij+=aik*bkj;for(i=0;i3;i+)for(j=0;j2;j+)printf(%5d,cij);printf(n);1 3 5 7 9 2 4 6 8 00 3 5 7

    10、9 2 4 6 8 10 1 5 7 9 3 4 6 8 20 1 2 7 9 5 4 6 8 30 1 2 3 9 7 5 6 8 40 1 2 3 4 9 7 6 8 50 1 2 3 4 5 9 7 8 60 1 2 3 4 5 6 9 8 70 1 2 3 4 5 6 7 9 80 1 2 3 4 5 6 7 8 91 3 5 7 9 2 4 6 8 01 3 5 7 2 4 6 8 0 91 3 5 2 4 6 7 0 8 91 3 2 4 5 6 0 7 8 91 2 3 4 5 0 6 7 8 91 2 3 4 0 5 6 7 8 91 2 3 0 4 5 6 7 8 91 2

    11、0 3 4 5 6 7 8 91 0 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9字符数组字符数组 C中无字符串变量中无字符串变量,字符串是用字符字符串是用字符数组处理数组处理.定义定义:一维 char cn5 (常用来处理一个字符串)二维 char name308 (常用来处理多个字符串)赋初值赋初值:static char cn5=C,h,i,n,a;static char cn6=C,h,i,n,a,0;static char cn6=“China”;static char cn6=“China”;static char cn=“China”;系统定义,自动在串尾

    12、加0。若提供的初值小于数组长度,则只将这些字符赋给数组中前面的元素,其余元素自动空字符0若对全体元素赋初值,可省长度说明均等价cn0cn1cn2cn3cn4cn5China0字符串结束标志输出时:printf(“%s n”,cn);cn 是字符数组名是字符数组名,当遇到0输出结束 printf(“%c n”,cn0);cn0 是字符数组元素是字符数组元素。在内存存放:字符串处理函数字符串处理函数:n头文件是头文件是 nputs(str或字串)在屏幕上显示一个字符串(以0结束);将结束标记转为 n;可含转义字符.nstatic char str=“BBI”;puts(str);static ch

    13、ar str=“n bbi”puts(str);ngets(str)n从键盘输入一个串给字符数组,返回是该数组在内存的首地址;字符串里可含空格ngets(str);键入:bbinstrcat(str1,str2)n将串2接在串1后,其结果放在字符数组中nstatic char c2=“a boy”static char c1=“I am”;printf(“%s”,strcat(c1,c2);nstrcpy(str1,字串)n将字符串拷贝到字符数组里nstrcpy(str1,”BBI”);static char str2=“bbi”;strcpy(str2,str1)nstrcmp(str1,s

    14、tr2)n两串相同,返回值是0;串1串2,返回值是正整数;串1串2,返回值是负整数nstrcmp(“CCTV”,”BTV”);nstrlen(str)n返回不包括0字符串的长度nprintf(“%dn”,strlen(“bbi”);n注:str,str1,str2是字符数组名或字符型指针变量名例:实现串拷贝main()static char s2=China;char s120;int i;for(i=0;s2i!=0;i+)s1i=s2i;s1i=0;printf(%sn,s1);例:实现串连接#include main()char s130,s220;int i,j;gets(s1);ge

    15、ts(s2);i=0;while(s1i)i+;for(j=0;s2j;j+,i+)s1i=s2j;s1i=0;printf(%s n,s1);例:字符串比较#include main()char s120,s220;int i;gets(s1);gets(s2);for(i=0;s1i=s2i;i+)if(s1i=0)break;printf(%d n,s1i-s2i);例:输入一串字符,统计该串里单词的个数 (单词间用空格分开),串结束用回车.Num:统计串的个数,Word:当遇到一个或多个空格,word=0;当遇到第一个非空格,若原word是0,表示新词开始,num增1,同时word=1

    16、;键入字符串stri!=0stri=?Yword=0Yword=0?num增1,word=1 N输出numN#include string.hmain()char str 20,c;int i,num=0,word=0;gets(str);for(i=0;(c=stri)!=0;i+)if(c=)word=0;else if(word=0)word=1;num+;printf(num=%d n,num);二维字符数组运用二维字符数组运用,常用来处理多个常用来处理多个字符串字符串.例例:char name308 该二维数组该二维数组用来存放某班用来存放某班30个学生的名字个学生的名字.30个人个

    17、人每人的名字每人的名字,其长度其长度=8name308例例:已知三个字符串已知三个字符串,挑出并输出最大串。挑出并输出最大串。C C T V 0 .B T V 0 .N T V 0 .c0是第一个串在内存存放首地址c1是第二个串在内存存放首地址c2是第三个串在内存存放首地址str是字符串在内存存放首地址#include main()char str20,c320;int i;for(i=0;i 0)strcpy(str,c0);else strcpy(str,c1);if(strcmp(c2,str)0)strcpy(str,c2);printf(max=%s n,str);例:键入一个数字串例:键入一个数字串,将其转为相应的整数将其转为相应的整数.如:“-1234”转为 -1234;“1234”转为 1234.main()char s20;int i,n,sign;scanf(%s,s);for(i=0;si=|si=t|si=n;i+);sign=(si=-)?-1:1;if(si=+|si=-)i+;for(n=0;si=0&si=9;i+)n=10*n+si-0;printf(Result is%d n,n*sign);

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

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


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


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

    163文库