Advertisement
ebx

Dekrement velikog broja

ebx
Jun 12th, 2011
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. typedef struct {
  5.     char broj[101];
  6.     int cif;
  7.     } VeBroj;
  8.  
  9. void citaj(VeBroj*);
  10. void dekrement(VeBroj*);
  11. void ispis(VeBroj);
  12.  
  13. int main(int argc, char **argv)
  14. {
  15.     VeBroj x;
  16.     citaj(&x);
  17.     dekrement(&x);
  18.     ispis(x);
  19.     return 0;
  20. }
  21. void citaj(VeBroj *x) {
  22.     unos:   fprintf(stdout, "Unesi broj: ");
  23.     scanf("%s",x->broj);
  24.     x->cif=strlen(x->broj);
  25.     if(x->cif > 100) {
  26.         puts("Broj je predugacak!\n");
  27.         goto unos;
  28.         }
  29.     if(*(x->broj)<=48) {
  30.         printf("Broj nije prirodan!\n");
  31.         goto unos;
  32.     }
  33.     }
  34. void dekrement(VeBroj *x) {
  35.     int i;
  36.     for (i=x->cif-1; i>=0; i--) {
  37.         if(*((x->broj)+i) == '0')
  38.             *((x->broj)+i) = '9';
  39.         else {
  40.             *((x->broj)+i)-=1;
  41.             break;
  42.             }
  43.         }
  44.     }
  45. void ispis(VeBroj x) {
  46.     printf("Dekrementovani broj: %s\n", x.broj);
  47.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement