Advertisement
Guest User

maja222222

a guest
Jan 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 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 kod[])
  12. {
  13.     int i;
  14.     int digit_counter = 0;
  15.     int control_number = 0;
  16.     int x = 10;
  17.    
  18.     for(i=0; i < kod[i]; i++)
  19.     {
  20.         digit_counter++;
  21.     }
  22.  
  23.     for(i=0; i < kod[i]; i++)
  24.     {
  25.         if(kod[i] == ' ')
  26.         {
  27.             return 1;
  28.         }
  29.     }
  30.    
  31.     if(digit_counter < 11 || digit_counter>11)
  32.     {
  33.         return 2;
  34.     }
  35.  
  36.    
  37.     for(i=0; i < kod[i]; i++)
  38.     {
  39.         if  ((kod[i] >= 'A' && kod[i] <= 'Z') || (kod[i] >= 'a' && kod[i] <= 'z'))
  40.         {
  41.             return 4;
  42.         }
  43.     }
  44.    
  45.     for(i=0; i < kod[i]; i++)
  46.     {
  47.         if(kod[i] > '9' ||kod[i] < '0')
  48.         {
  49.             return 5;
  50.         }  
  51.        
  52.     }
  53.    
  54.     control_number = kod[10] - '0';
  55.    
  56.  
  57. for (i=0;i<=9;i++) {
  58.     x+=kod[i]-'0';
  59.     if (x%=10);
  60.     else x=10;
  61.     x=x*2%11; }
  62.     x= x==1 ? 0 : 11-x;
  63.  
  64.     if(x!=control_number)
  65.     {
  66.        return 6;
  67.     }
  68.    
  69.     return 0;
  70. }
  71.  
  72. int main()
  73. {
  74.     int i;
  75.     char oib_check[15];
  76.    
  77.     printf("Unesite OIB: ");
  78.     scanf("%12[^\n]", &oib_check[i]);
  79.    
  80.     printf("Vraceno = %d ", error_check(oib_check));
  81.    
  82.     switch(error_check(oib_check))
  83.     {
  84.         case 0:
  85.             printf("\nOIB je ispravan");
  86.             break;
  87.        
  88.         case 1:
  89.             printf("\nUnesen razmak, neispravan OIB!");
  90.             break;
  91.            
  92.         case 2:
  93.             printf("\nUnesen krivi broj znamenki znamenki, neispravan OIB!");
  94.             break;
  95.            
  96.         case 4:
  97.             printf("\nSvi elementi OIB-a nisu znamenke, neispravan OIB!");
  98.             break;
  99.        
  100.         case 5:
  101.             printf("\nNedozvoljeni znak u OIB-u, neispravan OIB!");
  102.             break;        
  103.  
  104.         case 6:
  105.             printf("\nOIB neispravan, kontrolna znamenka nije dobra!");
  106.             break;
  107.     }
  108.    
  109.     return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement