大神,留步!!!
给你n(n>=2)个整数,在其中任意选择m(m>=2)个整数,这m个整数的乘积为t,求最大的t。
输入
测试包含多组数据直到文件结束。每组数据占两行,第一行包含一个整数n(2<=n<21),第二行包含n个整数。
输出
每组输出占一行,包含一个整数t。
样例输入
4
1 2 3 -1
2
1 2
样例输出
6
2
#include<stdio.h>
int main()
{
int a[100],b[100];
int i,j,k,n,m,max;
while (scanf("%d", &n) != EOF)
{
j = 0;
m=1;
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
if (a[i]!=0)
m=m*a[i];
}
if(n==2&&a[i]==0)
printf("%d\n",n-2);
if (m>0)
printf("%d\n", m);
{
for (i = 0; i < n; i++)
{
if (a[i] < 0)
{
b[j++] = a[i];
}
max = b[0];
k = j;
for (j = 0; j<k; j++)
{
if (b[j]>max)
max = b[j];
}
}
m = m/max;
printf("%d\n",m);
}
}
return 0;
}
哪位大佬,帮我看一下这题应该怎么做,我的思路是不是错了,程序哪里有问题?