C语言难题,最小子数组和:给你一个整数数组,请你找出一个具有最小和的连续子数组(子数 组最少包含一个元素),返回其最小和。子数组是数组中的一个连续部分。

.最小子数组和:给你一个整数数组,请你找出一个具有最小和的连续子数组(子数
组最少包含一个元素),返回其最小和。子数组是数组中的一个连续部分。
例如:
输入:-2 1 -3 4-1-2 1-5 4
输出:-7

这个和 “最大子数组的和” 是同样的算法。 请看看 https://ask.csdn.net/questions/6549887


#include<bits/stdc++.h>
int main() {
    int a[100],cnt=0;
    while(scanf("%d",&a[cnt++])==1) {}
    int j=0,minn=INT_MAX;
    for(int i=0;i<cnt;i++) {
        int sum=0;
        for(int j=i;j<cnt;j++) {
            sum+=a[j];
            minn=minn>sum?sum:minn;
        }
    }
    printf("%d",minn);
    return 0; 
}