体验结对开发的乐趣(4)--(首尾相连的一维数组求最大子数组和的问题)
结对人员:新1201-2班高扬、信1201-1班韩雪东
一、题目要求与设计思路
1.题目要求:这次的数组要求首尾相连形成一个环,
2.设计思路:这次编程我们主要是以以前的程序为基础,在此基础上通过改变数组元素的位置,形成新的数组,并通过调用我们之前找最大值的函数,找出每个数组的最大值,然后经过比较求得结果。
二、源代码
1 // shuzuhuan0327.cpp : Defines the entry point for the console application. 2 //作者:韩雪东,高扬 3 //时间:2015/3/27 4 5 #include "stdafx.h" 6 #include "stdio.h" 7 #include "stdlib.h" 8 #include "time.h" 9 10 int shuchu(int m[],int szcdx,int xhy)//m[]表示要测试的数组,szchx表示数组长度,xhy表示循环条件 11 { 12 int t,p; 13 int max,sum; 14 //缓存数组赋值 15 int c[10]; 16 int v[10]; 17 for(t=szcdx-xhy-1;t<szcdx;t++) 18 { 19 c[t-szcdx+xhy+1]=m[t]; 20 } 21 //循环 22 for(t=xhy;t>=0;t--) 23 { 24 sum=0; 25 for(p=0;p<=t;p++) 26 { 27 sum=sum+c[p]; 28 } 29 v[t]=sum; 30 } 31 //循环输出最大值 32 max=v[0]; 33 for(t=0;t<xhy+1;t++) 34 { 35 if(max<=v[t]) 36 { 37 max=v[t]; 38 } 39 printf("%d ",v[t]); 40 } 41 42 return max; 43 } 44 45 int main(int argc, char* argv[]) 46 { 47 srand(time(NULL)); 48 int a[10]; 49 int b[10]; 50 for(int j=0;j<10;j++) 51 { 52 a[j]=rand()%51-25; 53 printf(" %d ",a[j]); 54 } 55 int maxx[10]; 56 printf("\n"); 57 58 for(int i=9;i>=0;i--) 59 { 60 printf("包含数组中第%d个数在内的所有相邻子数组的和:",10-i); 61 maxx[i]=shuchu(a,10,i); 62 printf("\n%d\n\n",maxx[i]); 63 } 64 int maxxx=maxx[0]; 65 for(i=0;i<10;i++) 66 { 67 if(maxxx<=maxx[i]) 68 { 69 maxxx=maxx[i]; 70 } 71 } 72 printf("\n\n该数组的所有子数组的和的最大值:%d\n\n",maxxx); 73 b[0]=maxxx; 74 int p; 75 for(int t=0;t<9;t++) 76 { 77 p=a[0]; 78 for(int q=0;q<9;q++) 79 { 80 81 a[q]=a[q+1]; 82 83 } 84 a[9]=p; 85 //int maxx[10]; 86 87 for(int i=9;i>=0;i--) 88 { 89 printf("包含数组中第%d个数在内的所有相邻子数组的和:",10-i); 90 maxx[i]=shuchu(a,10,i); 91 printf("\n%d\n\n",maxx[i]); 92 } 93 int maxxx=maxx[0]; 94 for(i=0;i<10;i++) 95 { 96 if(maxxx<=maxx[i]) 97 { 98 maxxx=maxx[i]; 99 } 100 } 101 printf("\n\n该数组的所有子数组的和的最大值:%d\n\n",maxxx); 102 b[t+1]=maxxx; 103 } 104 int ma; 105 ma=b[0]; 106 for(i=0;i<10;i++) 107 { 108 if(ma<=b[i]) 109 { 110 ma=b[i]; 111 } 112 } 113 printf("\n\n该数组的所有子数组的和的最大值:%d\n\n",ma); 114 return 0; 115 116 }
三、运行结果截图
四、心得体会
主要处理的就是数组如何首尾相连的问题,其他的都是和以前的样。
五、有图有真相