$$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Self-defined math definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Math symbol commands \newcommand{\intd}{\,{\rm d}} % Symbol 'd' used in integration, such as 'dx' \newcommand{\diff}{{\rm d}} % Symbol 'd' used in differentiation ... $$

C语言:最小子数组和

题目

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

 例如:
  输入:-2 1 -3 4 -1 -2 1 -5 4
  输出:-7


代码


#include<stdio.h>

int main(){
	int len,step,i,j;
	char tmp[]=" ";
	int a[100];
	int sum=0,min=100;
	
	for(i=0;i<100;i++)a[i]=0;

	for(i=0;tmp[0]!='\n';i++){
		scanf("%d",&a[i]);
		tmp[0] = getchar();
	}
	len = i;

	for(step=1;step<len-1;step++){
		for(j=0;j<len-step;j++){
			for(i=j;i<j+step;i++){
				sum += a[i];
			}
			if(sum<min)min=sum;
			sum = 0;
		}
	}
	printf("%d",min);
	return 0;
} 
posted @ 2022-11-18 11:57  Shin404  阅读(63)  评论(0)    收藏  举报