为了账号安全,请及时绑定邮箱和手机立即绑定

帮我改改代码!谢谢!

帮我改改代码!谢谢!

C
蓝鸟渣渣 2016-03-06 17:00:54
Description给出N个整数,它们的范围是-100到100。从中选出k个整数,使它们的乘积达到最大。Input多个测试用例。每个测试用例有2行:第一行是两个整数N和K ( 1 ≤ K ≤ N ≤ 10 ),空格分隔;第二行是用空格分隔的N个整数。最后一个测试用例N=K=0,不用处理。Output每个测试用例输出一行:最大的乘积(测试数据确保答案不超过32位int的范围)。Sample Input4 21 7 2 05 3-5 -5 10 1 15 3-99 -67 0 0 00 0Sample Output142500我的代码:#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; }
查看完整描述

2 回答

已采纳
?
qq___524

TA贡献171条经验 获得超74个赞

没说是连续的k个说吧。。。

可以先将数组a排序,然后在挑k个

查看完整回答
反对 回复 2016-03-10
  • 蓝鸟渣渣
    蓝鸟渣渣
    问题是,怎么挑啊!能排好序,可是有正有负,怎么个挑法1
  • 2 回答
  • 0 关注
  • 1446 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信