"Trochu" efektívnejšia verzia:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char number[11], buffer[6];
int len, size, index, left, leftRev, right;
printf("Zadaj cislo (max. 10 cifier): ");
fgets(number, 11, stdin);
len = strlen(number);
if (number[len - 1] == '\n')
number[--len] = 0;
size = (len + 1) / 2;
index = len / 2;
buffer[size] = 0;
strncpy(buffer, number + index, size);
right = atoi(buffer);
strncpy(buffer, number, size);
left = atoi(buffer);
strrev(buffer);
leftRev = atoi(buffer);
if (right >= leftRev) {
left++;
itoa(left, number, 10);
itoa(left, number + index, 10);
strrev(number + index);
} else
strncpy(number + index, buffer, size);
printf("%s\n", number);
return 0;
}