课堂练习---求数组中子数组和的最大值

本文介绍了通过结对开发方式解决求解数组中子数组的最大和问题的过程。采用逐步增加子数组长度的方法,并利用之前计算的和来优化计算流程。

今天课上老师给我们出了一个结对开发的题目,让我们学会进行一个人编程一个人监督和引导的开发模式。

题目是求一个数组子数组中最大的,并且输出该值,可以有正负0。

课堂上我们的思路是进行分组,1个数,两个数,到6个数的子数组和都求出来然后求最大值。但是由于在进行

循环实现数组数字个数的变化时没有做出来,所以课上没做出来。

中午我们采纳了一开始想到的把前面求到的和利用起来的方式,比如a1,a2,求和后,用其值求a1,a2,a3的和

下面是我们的源代码,不足之处还忘多多指正。

 

 

#include<stdio.h>
int main()
{
    int a[6],b[6];
    int i,m,n;
    int j=0;
    for(i=0;i<6;i++)
        scanf("%d",&a[i]);
    for(i=0;i<6;i++)
    {
        m=a[i];
        n=a[i];
        j=i;
        while(j<6)
        {
            
            if(m<n)
            {
               m=n;
            }
            if(j<5)
            {
                j++;
                n=a[j]+n;
            }
            else 
                j++;
        }
        b[i]=m;
    }
    m=b[0];
    for(i=0;i<6;i++)
    {
        if(m<b[i])
            m=b[i];
    }
        printf("%d\n",m);
    return 0;
}

 

遇到了错误比如对变量初值的设定,要用数组中的数,因为会有负数,不可以设零,还有小的格式问题,

数组输入时&符号的使用。

 

 小组成员:王丹

              祁子梁

转载于:https://www.cnblogs.com/wangdan/p/3592857.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值