CoMoDoS

Permutare

Jan 7th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     printf("Hello world!\n");
  7.     int n,v[10],ok,x,w,val,aux,j,i,a[10];
  8.     scanf("%d",&n);
  9.     //printf("%d\n",n);
  10.     for ( i=0; i<n; i++ )
  11.         scanf("%d",&v[i]);
  12.     /*for ( i=0; i<n; i++ )
  13.         printf("%d",v[i]);*/
  14.     ok=1;x=0;
  15.     for ( i=n-1; i>=0; i-- )
  16.     {
  17.         if ( i==n-1 )
  18.             {
  19.                 a[0]=v[n-1];
  20.                 x++;
  21.             }
  22.         if( v[n-1]>v[n-2] )
  23.         {
  24.             aux=v[n-1];
  25.             v[n-1]=v[n-2];
  26.             v[n-2]=aux;
  27.         }
  28.         if( v[i]<v[i-1] )
  29.         {
  30.             a[x]=v[i-1];
  31.             x++;
  32.         }
  33.         /*for ( w=0; w<x; w++ )
  34.             printf("<%d",a[w]);
  35.         printf(">\n");*/
  36.        else
  37.         {
  38.             ok=0;
  39.             for ( j=0; j<x&&ok==0; j++ ) // caut valoare care o schimb
  40.             {
  41.                 if ( a[j]>v[i-1] )
  42.                 {
  43.                     ok==1;
  44.                     val=j;
  45.                 }
  46.             }
  47.             aux=v[i-1];
  48.             v[i-1]=a[val];
  49.             a[val]=aux;
  50.             if ( i>1 )
  51.                 i=n-1;
  52.             for ( w=i+1; w<n; w++ ) // interschimb restu
  53.             {
  54.                 x=0;
  55.                 v[w]=a[x];
  56.                 x++;
  57.             }
  58.         }
  59.         if ( i==0)
  60.            {
  61.                 for ( w=0; w<n; w++ )
  62.                 {
  63.                     printf("%d ",v[w]);
  64.                 }
  65.             printf("\n");
  66.             i=-1;
  67.            }
  68.  
  69.  
  70.     }
  71.  
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment