Advertisement
Guest User

drugo

a guest
Jan 20th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. /******************************************************************************
  2.  
  3. Welcome to GDB Online.
  4. GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby,
  5. C#, VB, Perl, Swift, Prolog, Javascript, Pascal, HTML, CSS, JS
  6. Code, Compile, Run and Debug online from anywhere in world.
  7.  
  8. *******************************************************************************/
  9. #include <stdio.h>
  10.  
  11. int error_check(char OIB[])
  12. {
  13. int i;
  14. int digit_counter = 0;
  15. int control_number = 0;
  16. int x = 10;
  17. //printf("Testni ispis: %s", OIB);
  18.  
  19. for(i=0; i < OIB[i]; i++)
  20. {
  21. digit_counter++;
  22. }
  23.  
  24. //Provjera razmaka
  25. for(i=0; i < OIB[i]; i++)
  26. {
  27. if(OIB[i] == ' ')
  28. {
  29. return 1;
  30. }
  31. }
  32.  
  33. //Provjera duzine
  34. if(digit_counter < 11)
  35. {
  36. return 2;
  37. }
  38. else if(digit_counter > 11)
  39. {
  40. return 3;
  41. }
  42.  
  43. //Provjera slova
  44. for(i=0; i < OIB[i]; i++)
  45. {
  46. if ((OIB[i] >= 'A' && OIB[i] <= 'Z') || (OIB[i] >= 'a' && OIB[i] <= 'z'))
  47. {
  48. return 4;
  49. }
  50. }
  51.  
  52. //Provjera znakova
  53. for(i=0; i < OIB[i]; i++)
  54. {
  55. if(OIB[i] > '9' || OIB[i] < '0')
  56. {
  57. return 5;
  58. }
  59.  
  60. }
  61.  
  62. control_number = OIB[10] - '0';
  63. printf("kontrolni broj %d", control_number);
  64.  
  65. //Provjera kontrolne znamenke
  66. for (i=0;i<=9;i++) {
  67. x+=(OIB[i] - '0');
  68. if (x%=10);
  69. else x=10;
  70. x=x*2%11; }
  71. x= x==1 ? 0 : 11-x;
  72. printf ("\nThe control digit is: %d\n\n", x);
  73.  
  74. if(x!=control_number)
  75. {
  76. return 6;
  77. }
  78.  
  79. printf("kontroli izracun = %d", x);
  80. return 0;
  81. }
  82.  
  83. int main()
  84. {
  85. int i;
  86. char OIB[15];
  87. int error_code = 0;
  88.  
  89. printf("Unesite OIB: ");
  90. scanf("%12[^\n]", &OIB[i]);
  91.  
  92. error_code = error_check(OIB);
  93. printf("Vraceno = %d ", error_code);
  94.  
  95. switch(error_code)
  96. {
  97. case 0:
  98. printf("\nOIB je ispravan");
  99. break;
  100.  
  101. case 1:
  102. printf("\nUnesen razmak, neispravan OIB!");
  103. break;
  104.  
  105. case 2:
  106. printf("\nUneseno premalo znamenki, neispravan OIB!");
  107. break;
  108.  
  109. case 3:
  110. printf("\nUneseno previse znamenki, neispravan OIB!");
  111. break;
  112.  
  113. case 4:
  114. printf("\nSvi elementi OIB-a nisu znamenke, neispravan OIB!");
  115. break;
  116.  
  117. case 5:
  118. printf("\nNedozvoljeni znak u OIB-u, neispravan OIB!");
  119. break;
  120.  
  121. case 6:
  122. printf("\nOIB neispravan, kontrolna znamenka nije dobra!");
  123. break;
  124. }
  125.  
  126. return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement