• 寻找最大子数组


    小组成员:贾川     李驭龙
    算法设计思想:
    随机输入一个个数为10的数组,然后定义一个函数,它的作用是讲这个数组的每个子数组都计算出来存入另一个临时数组,再把原来的数组接着插入到这个临时数组的后面,在这个临时数组中找到子数组和的最大值。



    源程序代码如下:








    #include "stdafx.h" #include "stdio.h" int A(int a[])//此函数的作用是计算出每个子数组的和进行比较,最后返回最大值max { int i,j,sum,max,m=0; int b[55]; for(i=0;i<9;i++) { sum=a[i]; for(j=i+1;j<10;j++) { sum=sum+a[j]; b[m++]=sum; } } m=45; for(i=0;i<10;i++) { b[m++]=a[i]; } max=b[0]; for(i=0;i<55;i++) { if(max<=b[i]) { max=b[i]; } } return max; } int main(int argc, char* argv[]) { int max; printf("please input 10 numbers: "); int m[10]; int i; for(i=0;i<10;i++) { scanf("%d",&m[i]); } max=A(m); printf("最大子数组和为: %d ",max); return 0; }

    下面是几种不同情况的输出结果:

    设想计算草稿: 

     

     

  • 相关阅读:
    poj 1466 Girls and Boys
    poj 1486 Sorting Slides
    poj 2112 Optimal Milking
    poj 1274 The Perfect Stall
    SHoj 420 购买装备
    poj 2987 Firing
    SHoj A序列
    FOJ Problem 2271 X
    XidianOJ 1028 数字工程
    XidianOJ 1030 三数和
  • 原文地址:https://www.cnblogs.com/ID-q-han/p/3591641.html
Copyright © 2020-2023  润新知