Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int nr;
- double v[101];
- void aranjare(double data[],int n);
- FILE *in, *out;
- int main()
- {
- in=fopen("asd.in","rt");
- out=fopen("asd.out","wt");
- fscanf(in, "%d",&nr);
- for(int i=1;i<=nr;i++)
- fscanf(in, "%lf",&v[i]);
- aranjare(v, nr);
- for(int i=1;i<=nr;i++)
- fprintf(out, "%lf ",v[i]);
- fclose(in);
- fclose(out);
- return 0;
- }
- void aranjare(double data[],int n)
- {
- int nrnegative=0,nrpozitive=0,limita;
- double tmp;
- for(int i=1;i<=n;i++)
- if(data[i]>0)
- nrpozitive++;
- else nrnegative++;
- if(nrnegative>nrpozitive)
- {
- limita=(n-nrpozitive)+1;
- for(int i=1;i<limita;i++)
- {
- bool gasit=true;
- if(data[i]>0)
- {
- gasit=false;
- for(int j=limita;j<=n;j++)
- if(data[j]<0)
- {
- tmp=data[i];
- data[i]=data[j];
- data[j]=tmp;
- gasit=true;
- break;
- }
- }
- if(!gasit)
- break;
- }
- }
- else
- {
- limita=nrnegative+1;
- for(int i=limita;i<=n;i++)
- {
- bool gasit=true;
- if(data[i]<0)
- {
- gasit=false;
- for(int j=1;j<limita;j++)
- if(data[j]>0)
- {
- tmp=data[i];
- data[i]=data[j];
- data[j]=tmp;
- gasit=true;
- break;
- }
- }
- if(!gasit)
- break;
- }
- }
- }
Add Comment
Please, Sign In to add comment