c++下网标的艺术.pptVIP

  • 3
  • 0
  • 约1.11万字
  • 约 40页
  • 2019-01-11 发布于福建
  • 举报
c下网标的艺术

程序的主要功能就是组织数据和处理数据。 数据组织可分为: 简单数据组织 线性数据组织 层次数据组织 网状数据组织 简单数据组织适合数据量少,彼此之间关联弱的数据处理; 层次数据组织对应于分层分级的数据处理,数据之间关系呈树状结构; 网状数据组织所处理的数据关系类似于层次数据,只是纵向关系更为复杂。 线性数据组织适合成批有序的同类数据的处理。这是最基本,也是最常见的数据组织。 实现线性数据组织的基本手段就是使用数组。 数组程序设计的基本问题是: 何时使用数组; 使用何种数组; 如何使用数组; 在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; } 3. 字符串删除控制。从前向后扫描字符串s1,调用in函数判断s1当前字符是否在字符串s2中,若在则调用del函数删除之。用函数sdel(char s1[ ],char s2[ ]); 主函数定义字符串,输入字符串,控制调用; 显然,本问题适合使用字符数组。 int in(char ch,char str[ ]) //判断ch是否在串str中 { int i=0; while(str[i]!=\0) if(str[i++]==ch) return 1; //在 return 0;

文档评论(0)

1亿VIP精品文档

相关文档