• 软件工程课堂练习--结对开发


    一、题目及要求:

          题目:返回一个整数数组中最大子数组的和。

          要求(新加):①要求程序必须能处理1000个元素;②每个元素都是int32类型的。

    二、设计思路

          这次练习依然是在之前一维数组的基础上完成的,此次的首要问题是要求程序能处理1000个数据并要求元素是int32型,所以会存在大数溢出问题,我们的想法就是将它找出并做 出警告

    三、源程序

     1 //结对人员 盖相庚 曹美娜
     2 
     3 #include "stdafx.h"
     4 #include "stdio.h"
     5 #include"stdlib.h"
     6 #include"time.h"
     7 #define N 1000 
     8 int compare( int arry[],int length)
     9 {
    10     int max[N],max1;
    11     for(int j=0;j<length;j++)
    12     {
    13         int sum=0;
    14         max1=-987654321;
    15         for(int i=j;i<length;i++)
    16         {
    17             sum=sum+arry[i];
    18             if(sum<0)              //判断其是否溢出
    19             {
    20                 printf("数值溢出!
    ");
    21                 return 0;
    22             }
    23             else if(sum>=max1)
    24             {
    25                 max1=sum;
    26             }
    27         }
    28         max[j]=max1;
    29         printf("包含数组中第%d个数的所有子数组中和最大的值为:%d
    ",j+1,max[j]);
    30     }
    31     int fmax=max[0];
    32     for(int i=0;i<length;i++)
    33     {    
    34         if(max[i]>fmax)
    35             fmax=max[i];
    36     }
    37     printf("所有子数组的和的最大值为:%d
    ",fmax);
    38     return 0;
    39 }
    40 int main(int argc, char* argv[])
    41 {
    42     int arry[N];
    43     int length;
    44     srand(time(NULL));
    45     printf("请输入要比较整数的个数:");
    46     scanf("%d",&length);
    47     
    48     for(int i=0;i<length;i++)
    49     {
    50         arry[i]=rand()+100000000;
    51     
    52     }
    53     printf("随机产生的数组为:
    ");
    54     for( i=0;i<length;i++)
    55     {
    56         printf("%d	",arry[i]);
    57     
    58     }
    59     compare(arry,length);
    60     return 0;
    61 }

    四、截图

    五、心得体会

    由于处理1000个数据出来的结果太长,所以我输入的是100个元素,其实1000个元素是能处理的,在程序中可以看出,我随机生成的元素比较大,所以就会出现大数溢出这种现象,然后程序找出,并提示数值已经溢出啦,结果会出现错误,程序就自己停止了

    六、工作照

  • 相关阅读:
    Ubuntu20.04更换软件源
    使用kubeadm安装k8s1.19版本之系统基础环境配置&k8s集群初始化(二)
    k8s如何删除处于terminating状态的ns资源
    k8s如何强制删除pod&pv&pvc和ns&namespace方法
    C语言中的有符号数和无符号整形数转换
    互联网-架构演进
    结合redis使token失效
    有一种爱叫做放手
    js 读取上传的json文件内容
    使用spark-md5获取文件的MD5值
  • 原文地址:https://www.cnblogs.com/caomeina/p/4376751.html
Copyright © 2020-2023  润新知