Guest User

Untitled

a guest
Apr 22nd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #define MAX 1000
  3. #define BAD_SEQ 1
  4. #define OK_SEQ 0
  5. int limite=0; //definisco una variabile globale che userò in seguito
  6.  
  7. int check_seq(char *s)
  8. {
  9.     int j=0;
  10.     for(j=0;j<MAX;j++){
  11.         if(s[j]=='/'){
  12.             return OK_SEQ;
  13.         }
  14.         else if(s[j]!='0'&&s[j]!='1'){
  15.             return BAD_SEQ;
  16.         }
  17.     }
  18.     return 2;
  19. }
  20.  
  21. int zero_count(char *s)
  22. {
  23.     int j=0, t=0;
  24.     for(j=0;j<limite;j++){ //limite è la variabile globale che contiene il limite della funzione
  25.         if(s[j]=='0'){
  26.             t+=1;
  27.         }
  28.     }
  29.     return t;
  30. }
  31.  
  32. int main()
  33. {
  34.     int j=0,l=0;
  35.     int controllo=0;
  36.     char seq[MAX+2];
  37.     printf("gimme da sequence!\n");
  38.     for(j=0;j<MAX;j++){  //impostiamo l'acquisizione di una sequenza di 1000 caratteri
  39.         scanf("%c",&seq[j]);
  40.         if(seq[j]=='/'){ //se riceviamo il carattere di terminazione usciamo dal ciclo for immediatamente f
  41.             l=j;        //falsando la condizione "j<MAX", e salviamo il j a cui siamo arrivati, che rappresenta
  42.             j=MAX+1;    //la dimensione massima della sequenza di 0 e 1, in una variabile l
  43.         }
  44.            
  45.     }
  46.    
  47.     //chiamata a funzione di controllo della sequenza
  48.    
  49.     if(check_seq(seq)==BAD_SEQ){
  50.         printf("La sequenza è malformata \n");
  51.         return 1;
  52.     }
  53.     else if(check_seq(seq)==OK_SEQ){
  54.         printf("la sequenza è ok \n");
  55.     }
  56.    
  57.     limite=l; //abbiamo definito precedentemente una variabile globale che ora contiene il limite della sequenza
  58.    
  59.     //non ci interessa vedere stampata la sequenza
  60.     /*
  61.     for(j=0;j<l;j++){ //possiamo impostare un for che stampi la sequenza fino alla lunghezza massima che è l
  62.         printf("[%c]",seq[j]);
  63.     }
  64.     */
  65.    
  66.     //chiamata a funzione che calcoli il numero di zeri
  67.    
  68.     printf("il numero degli zeri è %d \n",zero_count(seq));
  69.    
  70.     // codice di parità
  71.     if(zero_count(seq)%2==0){
  72.         controllo=0;
  73.     }
  74.     else{
  75.         controllo=1;
  76.     }
  77.     printf("il codice di parità dispari sulla sequenza e' %d\n", controllo);
  78.     return 0;
  79. }
Add Comment
Please, Sign In to add comment