SHARE
TWEET

Untitled

a guest Oct 20th, 2019 82 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Si consideri un array A, non vuoto, di n interi, in cui ciascun valore può essere esclusivamente 0 oppure 1. I
  3. valori sono presenti senza alcun ordine; è anche possibile che tutti i valori siano uguali.
  4. Si scriva un algoritmo lineare che sposti tutti i valori 0 prima di tutti i valori 1. Verrà assegnato punteggio pieno
  5. ad algoritmi che scambiano elementi in A, che richiedono memoria ulteriore O(1) (quindi che non sfruttano array
  6. ausiliari), e che non sono basati sul conteggio del numero di 0 e 1 presenti.
  7. Si scriva un programma che implementa l’algoritmo. Il programma deve leggere da standard input un intero n
  8. seguito da una sequenza di n valori 0/1, riordinare l’array e stamparlo. Ad esempio, ricevendo da standard input
  9.  
  10. 7
  11. 0 1 1 0 0 0 1
  12. il programma deve stampare
  13. 0 0 0 0 1 1 1
  14. */
  15.  
  16. #include <stdio.h>
  17.  
  18. int main(void){
  19.     int b[100]={0},n,x,i=0;
  20.  
  21.     scanf("%d",&n);
  22.     printf("\nn = %d\n",n);
  23.     //input
  24.     do{
  25.         scanf("%d",&x);
  26.         if(x==0 || x==1){
  27.             b[i]=x;
  28.             printf("\n\n%d",b[i]);
  29.             //ordinamento
  30.             do{
  31.                 x=b[i];
  32.                 b[i]=b[i-1];
  33.                 b[i-1]=x;
  34.                 if(b[i-2]!=0 && i>1){
  35.                     i--;
  36.                 }else{
  37.                     break;
  38.                 }
  39.             }while(b[i]==0 && b[i-1]!=0 && i!=0);
  40.            /* if (b[i]==0 && b[i-1]!=0 && i!=0){
  41.                 b[i]=b[i-1];
  42.                 b[i-1]=x;
  43.                 i=i-2;
  44.             }*/
  45.             i++;
  46.         }
  47.         printf("\ni = %d\n",i);
  48.     }while(i<n);
  49.  
  50.     //output
  51.     printf("\nn = %d\n",n);
  52.     for(i=0;i<n;i++){
  53.         printf("%d",b[i]);
  54.     }
  55.    
  56. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top