猿问

帮我改改代码!谢谢!

Description

给出N个整数,它们的范围是-100到100。从中选出k个整数,使它们的乘积达到最大。

Input

多个测试用例。

每个测试用例有2行:第一行是两个整数N和K ( 1 ≤ K ≤ N ≤ 10 ),空格分隔;第二行是用空格分隔的N个整数。

最后一个测试用例N=K=0,不用处理。

Output

每个测试用例输出一行:最大的乘积(测试数据确保答案不超过32位int的范围)。

Sample Input

4 2
1 7 2 0
5 3
-5 -5 10 1 1
5 3
-99 -67 0 0 0
0 0

Sample Output

14
250
0

我的代码:

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
	int a[12],i,j,n,k,min,d,c[12],l;
	while(scanf("%d %d",&n,&k)!=NULL)
	{
		if(n==0&&k==0)break;
		if(!(1<=k&&k<=10&&k<=n&&1<=n&&n<=10))break;
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);
		for(i=1;i<=n-k+1;i++)
		{   d=1;
			for(j=0;j<k;j++)
				d*=a[j+i];
			c[i]=d;
		}
		min=c[1];
		for(l=2;l<=n-k+1;l++)
			if(min<c[l])min=c[l];
		printf("%d\n",min);

	}
	return 0;
}



蓝鸟渣渣
浏览 1447回答 2
2回答

qq___524

没说是连续的k个说吧。。。可以先将数组a排序,然后在挑k个
随时随地看视频慕课网APP
我要回答