开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2047|回复: 8
收起左侧

[源码分享] 程序大赛的一道题,C++高手来!!

[复制链接]
结帖率:56% (5/9)
发表于 2011-3-23 09:47:20 | 显示全部楼层 |阅读模式   湖南省娄底市
题目二:(7分)
1.        问题描述:
给定一个整数序列,求出子段序列的最大和,也就是一段连续和元素的和,使其和最大,(如果和为负数则返回0)。
2.        要求:
    对于给定的n个数字的序列,编程计算最大子段和。
3.        输入:
    由文件num.in给出输入数据。文件第一行为n,第二行为n个整数序列。
4.        输出:
    将编程计算出的最大子段和输出到文件num.out。
5.        输入输出文件样例:
num.in                               num.out
9
3 4 -3 -6 8 -3 4 -2 -3         9
结帖率:0% (0/4)
发表于 2011-3-23 13:16:50 | 显示全部楼层   江苏省南京市
没看明白,很烦考试
回复 支持 反对

使用道具 举报

结帖率:80% (12/15)
发表于 2011-3-23 13:51:12 | 显示全部楼层   江苏省宿迁市
直接看不懂
回复 支持 反对

使用道具 举报

发表于 2011-5-2 07:59:34 | 显示全部楼层   上海市上海市
第一反应是冒泡的引申,但是我C++语法不是太熟,而且也肯定还有其它更好的算法,反正这样的思路是可以的:
#include <iostream.h>
#include <vector>
using namespace std;
void main()
{
  int n,*p,t,a[n],temp=0,max=0;

  out<<"请输入n的值:"<<endl;
  cin>>n;
  p=new int[n];
  out<<"请输入n个数:"
  for(t=0;t<=n;t++)
  {
    cin>>p[t];
  }                //把n个数放入数组

  for(i=0;i<n;i++)
  {
    for(j=i;j<=n;j++)
    {
     temp+=a[j];
     if(temp>max)
     max=temp;
    }
    temp=0;
  }                 //把这组数中每个连续的数列相加,并比较得出最大的数
  retrun max;
}
我也是C++新手,欢迎大家提出错误``
回复 支持 反对

使用道具 举报

发表于 2011-5-2 13:12:40 | 显示全部楼层   陕西省西安市
上面的代码有问题,- -
LZ能不能用自己的话把题目叙述一遍?
回复 支持 反对

使用道具 举报

发表于 2011-5-2 21:13:37 | 显示全部楼层   上海市上海市
我理解题目的意思就是:比较一个数列中所有可能的连续子数列的和大小,然后返回最大值,而且数列的大小由程序使用者自己输入,说到这我想起来应该判断下n的值如果是0应该提示重新输入非0的值才好,还有一句话后面小个分号。
回复 支持 反对

使用道具 举报

发表于 2011-5-2 22:21:43 | 显示全部楼层   陕西省西安市
我有几个疑问:
1   #include <vector>
     这个是什么意思?我还没有学到. - -
2  void  不是没有返回值吗?
    为什么会有  return max ?
3  int a[n]  这样子没法定义吧?
   反正我的编译器无法.
  能否解答一下,?!
好像*P也可能有点小问题,- -
谢谢了.
回复 支持 反对

使用道具 举报

发表于 2012-7-4 20:44:21 | 显示全部楼层   贵州省贵阳市
#include<stdio.h>
#define N 10
void main()
{
int i,j;
int a[N];
printf("put number(count=N):");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
int t=0, max=0;
for(i=0;i<N;i++)
{
for(j=i;j<N;j++)
{
t+=a[j];
if(t>max)
max=t;
}
t=0;
}
if(0==max)
printf("0\n");
else
printf("max=%d\n",max);
}
回复 支持 反对

使用道具 举报

发表于 2012-7-4 20:52:09 | 显示全部楼层   贵州省贵阳市
鼠标左键 发表于 2011-5-2 22:21
我有几个疑问:
1   #include  
     这个是什么意思?我还没有学到. - -

int a[n] 的 a[n]是数组,可以这样定义
#include <vector>
vector是标准C++库的头文件,属于STL库
void按我的理解等于return 0
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表