#include #include #if defined(NORMAALI) #define MAXNUM 8 int main() { int nums[MAXNUM+1], index1, index2; index1=-1; do { if (index1>=MAXNUM) { printf("Liian iso, en osaa\n"); exit(EXIT_FAILURE); } } while (scanf("%1d", &nums[++index1])); index2=-1; while (++index2<--index1) { #ifdef DEBUG printf("%d[%d] ?\? %d[%d]\n", nums[index2],index2, nums[index1],index1); #endif if (nums[index2] != nums[index1]) { printf("Ei oo\n"); exit(EXIT_FAILURE); } } printf("Palindromi!\n"); exit(EXIT_SUCCESS); } #elif defined(NORMFUN) #define MAXNUM 8 int palindromi(int a[], int len) { while (a=MAXNUM) { printf("Liian iso, en osaa\n"); exit(EXIT_FAILURE); } } while (scanf("%1d", &nums[++index1])); if (palindromi(nums, index1)) { printf("Palindromi!\n"); exit(EXIT_SUCCESS); } else { printf("Ei oo\n"); exit(EXIT_FAILURE); } } #elif defined(MAKROTAULU) #define N 20 #define MAXNUM (N-2) #define index1 a[0] #define index2 a[1] #define nums (&a[2]) int a[N]; int main() { // int nums[MAXNUM+1], index1, index2; index1=-1; do { if (index1>=MAXNUM) { printf("Liian iso, en osaa\n"); exit(EXIT_FAILURE); } } while (scanf("%1d", &nums[++index1])); index2=-1; while (++index2<--index1) { #ifdef DEBUG printf("%d[%d] ?\? %d[%d]\n", nums[index2],index2, nums[index1],index1); #endif if (nums[index2] != nums[index1]) { printf("Ei oo\n"); exit(EXIT_FAILURE); } } printf("Palindromi!\n"); exit(EXIT_SUCCESS); } #else #define N 10 int a[N]; int main() { a[0]=1; do { if (a[0]>=N) { printf("Liian iso, en osaa\n"); exit(EXIT_FAILURE); } } while (scanf("%1d", &a[++a[0]])); a[1]=1; while (++a[1]<--a[0]) { #ifdef DEBUG printf("%d[%d] ?\? %d[%d]\n", a[a[1]],a[1], a[a[0]],a[0]); #endif if (a[a[1]] != a[a[0]]) { printf("Ei oo\n"); exit(EXIT_FAILURE); } } printf("Palindromi!\n"); exit(EXIT_SUCCESS); } #endif