Guest User

Untitled

a guest
May 24th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <stdio.h>
  2. int nr;
  3. double v[101];
  4.  
  5. void aranjare(double data[],int n);
  6. FILE *in, *out;
  7. int main()
  8. {
  9.     in=fopen("asd.in","rt");
  10.     out=fopen("asd.out","wt");
  11.     fscanf(in, "%d",&nr);
  12.    
  13.     for(int i=1;i<=nr;i++)
  14.         fscanf(in, "%lf",&v[i]);
  15.    
  16.     aranjare(v, nr);
  17.    
  18.     for(int i=1;i<=nr;i++)
  19.         fprintf(out, "%lf ",v[i]);
  20.    
  21.     fclose(in);
  22.     fclose(out);
  23.     return 0;
  24. }
  25.  
  26.  
  27. void aranjare(double data[],int n)
  28. {
  29.     int nrnegative=0,nrpozitive=0,limita;
  30.     double tmp;
  31.     for(int i=1;i<=n;i++)
  32.         if(data[i]>0)
  33.             nrpozitive++;
  34.         else nrnegative++;
  35.    
  36.     if(nrnegative>nrpozitive)
  37.     {
  38.         limita=(n-nrpozitive)+1;
  39.        
  40.         for(int i=1;i<limita;i++)
  41.         {
  42.             bool gasit=true;
  43.             if(data[i]>0)
  44.             {
  45.                 gasit=false;
  46.                 for(int j=limita;j<=n;j++)
  47.                 if(data[j]<0)
  48.                 {
  49.                     tmp=data[i];
  50.                     data[i]=data[j];
  51.                     data[j]=tmp;
  52.                     gasit=true;
  53.                     break;
  54.                 }
  55.             }
  56.             if(!gasit)
  57.                 break;
  58.         }
  59.     }
  60.     else
  61.     {
  62.         limita=nrnegative+1;
  63.         for(int i=limita;i<=n;i++)
  64.         {
  65.             bool gasit=true;
  66.             if(data[i]<0)
  67.             {
  68.                 gasit=false;
  69.                 for(int j=1;j<limita;j++)
  70.                 if(data[j]>0)
  71.                 {
  72.                     tmp=data[i];
  73.                     data[i]=data[j];
  74.                     data[j]=tmp;
  75.                     gasit=true;
  76.                     break;
  77.                 }
  78.             }
  79.             if(!gasit)
  80.                 break;
  81.         }
  82.     }
  83.    
  84.    
  85. }
Add Comment
Please, Sign In to add comment