zoukankan      html  css  js  c++  java
  • ————————————————————————动态规划——————————————————————1003——————————

    //  出现了三个问题,1   忘了写等号。2,max写成了sum,3,begin写成了again。 诡异的事情,没有写等号的话,会出现a读取错数字的情况。呵呵你所谓诡异的超神奇现象就是少写了一个等号,导致每一次都少都去一个零上一次没有用到的数据占了下一次第一个数据的位置
    //导致了惨案的发生
    
    
    #include<stdio.h>
    int main()
    {
        int n,m,i,sum,a,q,begin,over,again,max;
        scanf("%d",&n);
        for(q=1;q<=n;q++)
        {
            scanf("%d%d",&m,&a);           //  读取  序列长度,和序列首位数字。
            sum=max=a;                   //     将他们的最大值,和,都初始化为首位数字。
            begin=over=again=1;
            for(i=2;i<=m;i++)
            {
                scanf("%d",&a);
                if(sum+a<a)   //如果符合的话 就说明sum小于零,这样的话 就需要重新开始计数,和相加了(舍弃前面的不合格部分)
                {
                    sum=a;
                    again=i;
                }
                else
                {
                    sum=sum+a;
                }
                if(sum>max)
                {
                    max=sum;
                    over=i;
                }
            }
            if(q!=1)
                printf("
    ");
            printf("Case %d:
    ",q);
            printf("%d %d %d
    ",max,begin,over);
        }
    }

    头疼,是不是水题做的太少了导致经常会犯这种小错误?

  • 相关阅读:
    SQL数据库常用命令
    软件测试基础学习
    单链表面试题集合
    常见算法排序,冒泡排序,快排,堆排,归并排序
    CSS学习笔记(2)
    CSS学习笔记(1)
    sublime快捷键
    Sublime Text 中文输入法无法跟随怎么办
    网站收集
    Centos7安装Jenkins
  • 原文地址:https://www.cnblogs.com/A-FM/p/4998523.html
Copyright © 2011-2022 走看看