diff options
Diffstat (limited to 'inf/zotks/2/Sosedska_stevila.c')
-rw-r--r-- | inf/zotks/2/Sosedska_stevila.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/inf/zotks/2/Sosedska_stevila.c b/inf/zotks/2/Sosedska_stevila.c new file mode 100644 index 0000000..eb06702 --- /dev/null +++ b/inf/zotks/2/Sosedska_stevila.c @@ -0,0 +1,60 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +int popravi(char * b) { + int i = 0; + int spremenil = 0; + for (i = strlen(b)-1; i > 0; i--) { + if (b[i] > '9') { + b[i] = '0'; + b[i-1]++; + spremenil++; + } + } + if (b[0] > '9') { + /* fprintf(stderr, "debug\n");; */ + memcpy(b+1, b, 24); + b[1] = '0'; + b[0] = '1'; + spremenil++; + } + return spremenil; +} +int jeok (char * b) { + int se_enkrat = 0; + for (int i = 0; b[i+1] != '\0'; i++) { + if (b[i] == b[i+1]) { + b[i+2]++; + if (popravi(b)) + se_enkrat++; + } + } + if (se_enkrat) + return jeok(b); + return 0; +} +int main (int argc, char ** argv) { + char b[25]; /* vemo, kako veliko je št */ + char c = fgetc(stdin); + unsigned long long int i = 0; + while (!feof(stdin)) { + b[i++] = c; + c = fgetc(stdin); + } + b[i--] = '\0'; + fprintf(stderr, "poganjam %s\n", b); + fflush(stderr); + b[i]++; + popravi(b); + jeok(b); + fprintf(stdout, "%s\n", b); + return 0; +} +/* + int main (int argc, char ** argv) { + char c[1234]; + strcpy(c, argv[1]); + popravi(c); + fprintf(stdout, "%s\n", c); + } +*/ |