c++多个最大子数组求和问题问题

C++如何定义不定长的数组?
[问题点数:100分,结帖人Eddie780]
C++如何定义不定长的数组?
[问题点数:100分,结帖人Eddie780]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年12月 C/C++大版内专家分月排行榜第三2015年11月 C/C++大版内专家分月排行榜第三
2016年5月 总版技术专家分月排行榜第二
2016年10月优秀大版主2016年8月论坛优秀大版主
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
2018年1月 总版技术专家分月排行榜第一2016年12月 总版技术专家分月排行榜第一2016年11月 总版技术专家分月排行榜第一2016年10月 总版技术专家分月排行榜第一
2016年10月优秀大版主2016年8月优秀大版主
匿名用户不能发表回复!|23:11 提问
为什么这段代码循环输出的数组少了第一个元素且多出了一个随机数?
输入一些非负实数 用数组输出这些数 求平均数并输出(输入负数时报错并退出重新输入,输入回车时执行下一步操作)
int main()
int i,j,k;
double a[100],sum=0,
cout&&"输入数字"&
for (i=0;getchar()!='\n';i++)
cin&&a[i];
if (a[i]& 0)
cout&&"您在数据中输入了一个负数"&&
goto part1;
cout&&"输入的数据为:"&&
for(i=0;i&=k;i++)
cout&&a[i]&&" ";
for(i = 0;i&=k;i++)
sum=sum+a[i];
avr=sum/(k+1);
按赞数排序
.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符..如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
第一个字符被getchar()用掉了。
for (i=0;getchar()!='\n';i++)
cin&&a[i];
if (a[i]& 0)
后面的循环应该是i&k,多了一次,输出了一个随机数
for(i=0;i&=k;i++)
cout&&a[i]&&" ";
应该是你的代码有问题,少用goto多用循环
输入一行数字,当按下回车后,getchar()读取第一个字符,将其余的放入缓冲区,包括回车。
所以你的程序可以这样改,把第一个字符退回输入流。
for (i=0;(ch=getchar())!='\n';i++)
ungetc(ch,stdin);//退回第一个字符
cin&&a[i];
if (a[i]& 0)
代码粘贴有错误,重粘一遍
cout&&"输入数字"& j=0,k=0;
for (i=0;(ch=getchar())!='\n';i++)
ungetc(ch,stdin);//退回第一个字符
cin&&a[i];
if (a[i]& 0)
输入一行数字,当按下回车后,getchar()读取第一个字符,将其余的放入缓冲区,包括回车。
所以你的程序可以这样改,把第一个字符退回输入流。
for (i=0;(ch=getchar())!='\n';i++)
ungetc(ch,stdin);//退回第一个字符
cin&&a[i];
if (a[i]& 0)
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐剑指offer面试题31:连续子数组的最大和
问题描述:一个N个整数元素的一维数组(A[0],A[1],...,A[n-2],A[n-1]),这个数组当然有很多子数组,那么子数组之和的最大值是多少呢?
解题思路:定义两个变量,nStart表示以当前元素为首的子数组的最大值,nAll表示遍历到当前元素时最大子数组的值.从数组的尾元素开始遍历.有如下的递推公式:
nStart = max(A[i], nStart + A[i]);
nAll = max(nStart, nAll);
算法伪代码实现如下:
int max(int x, int y)
return ((x > y) ? x : y);
int MaxSum(int* A, int n)
nStart = A[n-1];
nAll = A[n-1];
for (i = n-2; i >=0; i--)
nStart = max(A[i], nStart + A[i]);
nAll = max(nStart, nAll);
上述解题思路是一种通用的实现方式,剑指offer种给出了另一种方法,不过有个前提条件就是:要处理的数组中既有正数又有负数.
这种情况下的解题思路为:定义两个变量,nCurSum表示当前连续子数组的最大值,nGreateSum表示遍历到当前元素时最大子数组的值.解题思路如下:
从数组开头开始遍历,每遍历一个元素之前首先查看nCurSum的正负号,如果小于或等于0,则说明之前累加的元素加上当前的元素值,肯定要小于当前的元素值,那么丢弃原来的累计值(这与数组元素的特性有关),将nCurSum的值至为当前元素值.
如果nCurSum值大于0,则令:nCurSum += pData[i].
每次处理完一个元素都要将nCurSum值与之前的nGreateSum值比较,并实时更新nGreateSum的值.
bool FindGreatestSumOfSubArray
int *pData,
// an array
unsigned int nLength, // the length of array
int &nGreatestSum
// the greatest sum of all sub-arrays
// if the input is invalid, return false
if((pData == NULL) || (nLength == 0))
int nCurSum = nGreatestSum = 0;
for(unsigned int i = 0; i < nL ++i)
nCurSum += pData[i];
// if the current sum is negative, discard it
if(nCurSum
nGreatestSum)
nGreatestSum = nCurS
// if all data are negative, find the greatest element in the array
if(nGreatestSum == 0)
nGreatestSum = pData[0];
for(unsigned int i = 1; i
nGreatestSum)
nGreatestSum = pData[i];C++中两个数组元素的比较问题_百度知道
C++中两个数组元素的比较问题
比如两个数组分别为{2,5,3,7}和{2,4,5,3},比较的结果要为3个相同元素,而{1,2,3,4}和{2,5,2,6}为一个相同元素
我有更好的答案
int arr1[100];int arr2[100]; //先定义长度,否则不知道循环多少次//对数组进行赋值操
我用过嵌套循环比较,但结果和要求总是有差别
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。从多个int数组中各取一个值构成一个新的数组,并取尽所有可能 - C++当前位置:& &&&从多个int数组中各取一个值构成一个新的数组,并取从多个int数组中各取一个值构成一个新的数组,并取尽所有可能www.MyException.Cn&&网友分享于:&&浏览:8次从多个int数组中各取一个值组成一个新的数组,并取尽所有可能比如3个int数组,int&a【5】,int&b【5】,int&c【5】,如何分别从a&b&c中各取一个值存放到数组d【3】中,d【3】可循环覆盖,如何编程实现将全部可能都去尽&即取尽5*5*5中可能&,急求大虾解答
------解决方案--------------------那就另外定义一个长200的数组,用来存放当前分别取到第几个值吧,取一个就把数组的整体值+1,模拟进位------解决方案--------------------#include&&stdio.h&
int&main(int&argc,&char&*argv[])
char&a[]&=&"12345";
char&b[]&=&"6789A";
char&c[]&=&"BCDEF";
char&d[4];
for(int&i=0;&i&5*5*5;&++i)
d[0]=a[i%5];
d[1]=b[i/5%5];
d[2]=c[i/25%5];
printf("%s\t",&d);
}------解决方案--------------------你这个需求.......
15^200&=&1.
假设一秒钟处理1*10^10个字符,
则需要&1.&秒
需要5.&&年
假设你有1亿台服务器,
你确定你的需求如此确实如此?
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

我要回帖

更多关于 最大子数组求和问题 的文章

 

随机推荐