题解 | #最大乘积#
最大乘积
https://www.nowcoder.com/practice/5f29c72b1ae14d92b9c3fa03a037ac5f
#include<stdio.h>
int main()
{
int n;
long long arr[1000000];//定义一个足够大的数组
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++)
{
scanf("%lld ",&arr[i]);
}
for(int i=0;i<n;i++)//冒泡排序,外层循环排序的次数
{
for(int j=0;j<n-i-1;j++)//比较的次数
{
if(arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
long long ji=0;
if(arr[0]<0&&arr[1]<0)//两种情况:比较最小的两个的乘积与第三大的数与第二大数的乘积比较大小
{
long long a=arr[0]*arr[1];
long long b=arr[n-3]*arr[n-2];
ji=a>b?a:b;
}
else
{
ji=arr[n-3]*arr[n-2];
}
printf("%lld\n",arr[n-1]*ji);
}


