test

double max3(double,double,double);
double min3(double,double,double);
double max3(double a,double b,double c){
    if(a>b) return a>c?a:c;
    else return b>c?b:c;
}
double min3(double a,double b,double c){
    if(a<b) return a<c?a:c;
    else return b<c?b:c;
}

int main()
{
   int n,j;
   double MaxMupl;
   double *Arr,*Max,*Min;
   printf("Input the size of the array:");
   scanf("%d",&n);
   Arr=(double *)malloc(sizeof(double)*n);
   Max=(double *)malloc(sizeof(double)*n);
   Min=(double *)malloc(sizeof(double)*n);  
   for ( j=0;j<n;j++)
      scanf("%lf",Arr+j);
   Max[0]=Min[0]=MaxMupl=Arr[0];
   for (int i=1;i<n;i++){
     Max[i]=max3(Arr[i],Max[i-1]*Arr[i],Min[i-1]*Arr[i]);
     Min[i]=min3(Arr[i],Max[i-1]*Arr[i],Min[i-1]*Arr[i]);
     if(Max[i]>MaxMupl) MaxMupl=Max[i];
   }
   if(MaxMupl>0){
       if(MaxMupl==(int)MaxMupl) printf("%d",(int)MaxMupl);
       else printf("%.2lf",MaxMupl);
   }
   else printf("-1\n");
   system("pause");
   free(Arr);
   free(Max);
   free(Min);
   return 0;
}

posted on 2014-01-06 22:15  Matteo  阅读(135)  评论(0)    收藏  举报

导航