zoukankan      html  css  js  c++  java
  • 最大子序列和与软件调试

    #include<stdio.h>
    #define N 1000
    #define INF 10000
    int maxsubsum(int * arr, int Size)
    {
        int maxSum = -INF;
        int sum = 0;
        for(int i = 0; i < Size; i++)
        {
            if(sum < 0)
            {
                sum = arr[i];
            }
            else
            {
                sum += arr[i];
            }
            if(sum > maxSum)
            {
                maxSum = sum;
            }
        }
        return maxSum;
    }
    int main()
    {
        int MSS;
        int i;
        int j=0;
        int arr[N]={0};
        char c;//用来判断何时停止输入的
        printf("input N number:
    ");
        for(i=0;i<N;i++)
        {
            scanf("%d",&arr[i]);
             scanf("%c",&c);
            j++;//计数器
            if(c=='
    ')//打入回车则自动结束
            {
              break;
            }
        }
        for(i=0;i<j;i++)//原数组打出屏幕
        {
            printf("%d  ",arr[i]);
        }
    
        printf("
    ");
        MSS=maxsubsum(arr,j);
        printf("Mss=%d
    ",MSS);
        return 0;
    
    }

     以上是修改后的代码。

     原先的函数代码:

    int maxsubsum(int a[N])
    {
        int maxsum=0,thissum=0;
        int j;
        for(j=0;j<N;j++)
        {
    
            thissum+=a[j];
    
            if(thissum>maxsum)
                maxsum=thissum;
            else if(thissum<0)
                thissum=0;
        }
        return maxsum;
    }

    进行调试:

     

     

     这就出现了错误

    所以应该先将maxsum定义为负无穷。而sum不能赋值为0 ,而是a[i].

    问题解决

    当序列和大于32位时会溢出,可以将mss变量定义为long int 类型

    周活动总结

    10.14

      听课 编写程序 查资料 日总计
    周三        
    周四 2 1 0 3
    周五        
    周六        
    周日 0 2 1 3
    周总结 2 2 1 6

    时间记录日志

    日期 开始时间 结束时间 净时间 活动
    10.11 10.00 12.00 120min 听课,写课堂作业
    10.14 9.00 12.30 3h 编程并调试
             

     

    附上照片

  • 相关阅读:
    jQuery插件jTemplates(模板)
    js常用正则
    SQLServer笔记 //20111027
    神经网络感知器matlab实现
    求全排列(无重复字母)
    python 学习笔记(1、数据类型)
    WampServer 不能打开phpmyadmin 的解决办法
    求一个整形数组里子序列和最大的算法
    堆排序算法的实习(C++)
    归并排序
  • 原文地址:https://www.cnblogs.com/1742031541lh/p/9785736.html
Copyright © 2011-2022 走看看