//软件工程课堂测试06,编程思想见下
1 #include<iostream> 2 #define num 100 3 using namespace std; 4 void main() 5 { 6 int sznum=0,sf,max,bj1,bj2; 7 int sz[num]={0}; 8 cout<<"请输入数字:"<<endl; 9 for(int i=0;i<num;i++) //输入数字 10 { 11 cin>>sz[i]; 12 sznum++; //记录输入了几个数字 13 cout<<"是否继续输入:1.是2.否"; 14 cin>>sf; 15 if(sf==2) 16 break; 17 } 18 bj1=sz[0]; //变量初始化 19 bj2=sz[0]; //变量初始化 20 max=sz[0]; //变量初始化 21 for(int i=1;i<=sznum;i++) 22 { //计算子数组中的最大和 23 bj1=bj1+sz[i]; //前i个数相加 24 if(max<bj1) //max与前i个数相加比较,取最大值 25 max=bj1; 26 if(max<bj2) //max与前i-1个数相加比较,取最大值 27 max=bj2; 28 bj2=bj1; //原来bj2是前i-1个数相加,现在bj2是前i个数相加 29 } 30 cout<<"子数组的最大和为:"<<max<<endl; 31 }
软件工程课堂测试06
编程思想:
1.先输入数字
2.统计输入数字的个数
3.计算前i个数字的和和前i-1个数字的和就行比较,取最大值
4.输出最大值
截图: