子数组和最大值
#include <iostream> #include <stdio.h> using namespace std; #define max 100 #define no -9999 int main() { int ary[max]; int length; //输入数组的长度 for(int i=0;i<max;i++) { ary[i]=no; } cout <<"请输入整数数组:"; //输入 while(getchar()!='\n') //用于判断输入enter结束条件 { for(int i=0;i<5;i++) { cin>>ary[i]; } } for(int i=0;i<max;i++) //计算整数数组长度 { cout <<ary[i]<<" "; if(ary[i]==no) { length=i; break; } } cout <<endl; cout <<length<<endl; int sum=0, mid=0; for(int i=0;i<length;i++) //计算子数组和的最大值 { if(mid<0) mid=ary[i]; else mid=mid+ary[i]; if(mid>sum) sum=mid; } cout <<"该整数数组中子数组最大值为:"<<sum<<endl; return 0; }
遇到难题:
自己输入几个整数在使用enter键判断输入结束时遇到难点。
解决方法
将输入放在while循环中 利用条件 getchar()=='\n'判断是否为erter,若是则输入结束。