- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下标的艺术; 程序的主要功能就是组织数据和处理数据。
数据组织可分为:
简单数据组织
线性数据组织
层次数据组织
网状数据组织; 简单数据组织适合数据量少,彼此之间关联弱的数据处理;
层次数据组织对应于分层分级的数据处理,数据之间关系呈树状结构;
网状数据组织所处理的数据关系类似于层次数据,只是纵向关系更为复杂。
线性数据组织适合成批有序的同类数据的处理。这是最基本,也是最常见的数据组织。; 在C++中,数组有三种:一维数组、二维数组和字符数组。
一维数组:适合处理一批同类型且不分行的数据;
二维数组:适合处理一批同类型且分行的数据;
字符数组:适合处理字符串。; 【例1】对一个5位数的任意整数,求出其降序数。例如,整数是82319,则其降序数是98321。
分析:要将一整数逐位处理,就要分解该整数,要排序就要使用数组,因此
第1步:将整数的各位数分解到一维整型数组a中;
第2步:再将a数组中的元素按降序排序,
第3步:重新构建一个5位数;
第4步:最后输出a数组元素值。;#includeiostream.h
void main()
{
int a[5],x,y=0,i,j,k,t;
cout请输入一个5位整数:;
do //要求一定是5位数
cinx;
while(x10000||x99999);
for(i=0;i5;i++)
{ a[i]=x%10; //分解
x=x/10;
}; 【例2】:由一个已知一维数组派生出另一个一维数组的派生规则如下:新数组的每一个元素等于原始数组的对应元素及其相邻两元素的平均值。其中第0个元素的左邻元素约定为最后一个元素,最后一个元素的右邻元素约定为第0个元素。; 【分析】根据题意,除了b[0]和b[9]外,b数组元素的生成规则可以概括为:
b[i]=a[i-1]+a[i]+a[i+1]
b[0]和b[9]为b数组的边界元素,这类问题的解决规则为:
边界元素特殊处理,中间元素循环处理。
按照此规则,程序如下:;#includeiostream.h
void main()
{
int a[10],b[10],i;
cout请输入10个整数:;
for(i=0;i10;i++)
cina[i];
b[0]=a[9]+a[0]+a[1]; //处理边界元素
b[9]=a[8]+a[9]+a[0];
for(i=1;i9;i++) //处理中间元素
b[i]=a[i-1]+a[i]+a[i+1];
for(i=0;i10;i++)
coutb[i] ;
cout\n;
};【例3】:以下程序的功能是:求a数组中前4个元素之和及后6个元素之和。试完善程序以达到要求的功能。
int fsum(int array[],int n)
{ int i,s;
s=0;
for(i=0; ;i++)
s+=array[i];
return(s);
}
void main(void)
{ int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int sumh,sumt;
sumh=fsum(a,4);
sumt= ;
coutsumh‘\t’sumtendl;
} ;【例4】:编写一个程序,将字符串s1中所有出现在字符串s2中的字符删去。
分析:本程序需要如下功能:
对于s1中每个字符ch,判断其是否在字符串s2中。可以用函数in(char ch,char str[ ])完成。若在,该函数返回1,否则返回O;
删除s1中的i位置字符ch。删除后,ch后的所有字符前移一个位置,可用函数del(char s1[ ], int k)完成;;3. 字符串删除控制。从前向后扫描字符串s1,调用in函数判断s1当前字符是否在字符串s2中,若在则调用del函数删除之。用函数sdel(char s1[ ],char s2[ ]);
主函数定义字符串,输入字符串,控制调用;
显然,本问题适合使用字符数组。;int in(char ch,char str[ ]) //判断ch是否在串st
您可能关注的文档
最近下载
- 地理七上.doc VIP
- 麦克维尔自然冷却风冷螺杆冷水机组 安装使用手册(1).pdf VIP
- 《职业生涯规划与就业指导》高职大学生就业指导全套教学课件.pptx
- 竣工图绘制合同协议.docx VIP
- 浙江省温州市2022-2023学年高一上学期期末教学质量统一检测政治试题.pdf VIP
- 匹克球理论考试试题库及答案.docx VIP
- 2024年福建省龙岩市新罗区西城街道招聘社区工作者真题带答案详解.docx VIP
- 北京市东城区东直门中学2024-2025学年七年级上学期分班考数学试卷.docx VIP
- 2024-2025学年人教版初中体育与健康九年级(全一册)教学设计.docx
- 冬季防寒防冻培训.pptx VIP
原创力文档


文档评论(0)