Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX 1000
- #define BAD_SEQ 1
- #define OK_SEQ 0
- int limite=0; //definisco una variabile globale che userò in seguito
- int check_seq(char *s)
- {
- int j=0;
- for(j=0;j<MAX;j++){
- if(s[j]=='/'){
- return OK_SEQ;
- }
- else if(s[j]!='0'&&s[j]!='1'){
- return BAD_SEQ;
- }
- }
- return 2;
- }
- int zero_count(char *s)
- {
- int j=0, t=0;
- for(j=0;j<limite;j++){ //limite è la variabile globale che contiene il limite della funzione
- if(s[j]=='0'){
- t+=1;
- }
- }
- return t;
- }
- int main()
- {
- int j=0,l=0;
- int controllo=0;
- char seq[MAX+2];
- printf("gimme da sequence!\n");
- for(j=0;j<MAX;j++){ //impostiamo l'acquisizione di una sequenza di 1000 caratteri
- scanf("%c",&seq[j]);
- if(seq[j]=='/'){ //se riceviamo il carattere di terminazione usciamo dal ciclo for immediatamente f
- l=j; //falsando la condizione "j<MAX", e salviamo il j a cui siamo arrivati, che rappresenta
- j=MAX+1; //la dimensione massima della sequenza di 0 e 1, in una variabile l
- }
- }
- //chiamata a funzione di controllo della sequenza
- if(check_seq(seq)==BAD_SEQ){
- printf("La sequenza è malformata \n");
- return 1;
- }
- else if(check_seq(seq)==OK_SEQ){
- printf("la sequenza è ok \n");
- }
- limite=l; //abbiamo definito precedentemente una variabile globale che ora contiene il limite della sequenza
- //non ci interessa vedere stampata la sequenza
- /*
- for(j=0;j<l;j++){ //possiamo impostare un for che stampi la sequenza fino alla lunghezza massima che è l
- printf("[%c]",seq[j]);
- }
- */
- //chiamata a funzione che calcoli il numero di zeri
- printf("il numero degli zeri è %d \n",zero_count(seq));
- // codice di parità
- if(zero_count(seq)%2==0){
- controllo=0;
- }
- else{
- controllo=1;
- }
- printf("il codice di parità dispari sulla sequenza e' %d\n", controllo);
- return 0;
- }
Add Comment
Please, Sign In to add comment