fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7. char *binarni_broj; //deklariraj pokazivac na polje u koje cemo smjestiti binarni broj kao niz znakova
  8. int n,provjera; //n je varijabla koja odreduje velicinu binarnog broja,"provjera" odreduje jeli provjera uspjesna
  9. printf("\n koliko vas binarni broj ima znamenaka? ");
  10. scanf("%d",&n);
  11. binarni_broj=(char*)malloc((n+1)*sizeof(char)); //rezerviram n mjesta za binarni broj + jedno mjesto za znak za kraj stringa
  12. printf("\n upisite vas binarni broj");
  13. fflush(stdin); //brisem sve iz standardnog ulaza
  14. gets(binarni_broj); //ucitavam binarni broj kao string(niz znakova)
  15. puts(binarni_broj); //ispisujem uneseni binarni broj na ekran (nepotrebno)
  16. n--; //postavljam se na bit najmanje tezine(prvi zdesna,zadnji u polju)
  17. while(binarni_broj[n] == '0' && n>0) n--; //sve dok su bitovi 0 i dok nisi dosao do kraja,idi na slijedeci bit
  18. while(binarni_broj[n] == '1' && n>0) { //Sada se sigurno dogodila promjena iz 0 u 1 i sve dok su bitovi 1 i dok nisi dosao do kraja...
  19. n--; //...idi na slijedeci bit
  20. if( binarni_broj[n] == '0' ) { //ako je trenutni bit 0,dogodila se jos jedna promjena,postavi provjeru u 0 i izadji iz petlje
  21. provjera = 0;
  22. break;
  23. }
  24. }
  25. if(n == 0) provjera = 1; //ako si dosao do kraja(do bita najvece tezine(prvi slijeva,prvi u polju),znaci da su ispred 0 same jedinice i postavi provjeru u 1
  26. //ako je n razlicit od 0,to znaci da si iskocio iz petlje prije kraja jer se desila jos jedna promjena sto znaci da ispred broja nisu same jedinice
  27. printf("\n%d",provjera);
  28. return 0;
  29. }
  30.  
Runtime error #stdin #stdout 0.01s 2704KB
stdin
Standard input is empty
stdout
Standard output is empty