rendered paste body#include <stdlib.h>#include <stdio.h>#include <string.h>void error(const char *reason) { printf("\nError: %s\n", reason); exit(1);}void print(char nr) { static int count = 0; printf("%X", nr); count++; if (count > 0 && count % 2 == 0) printf(" ");}int main() { char program[256]; char stack[256]; int top = -1; int i; fgets(program, 256, stdin); int length = strlen(program); for (i = 0 ; i < length ; i++) { if (program[i] >= '0' && program[i] <= '9') { top++; stack[top] = program[i] - '0'; print(stack[top]); } else if (program[i] >= 'A' && program[i] <= 'F') { top++; stack[top] = program[i] - 'A' + 10; print(stack[top]); } else if(program[i] >= 'a' && program[i] <= 'o') { if(top < 0) error("stack underrun"); int tmp = stack[top] + program[i] - 'a' + 1; if(tmp >= 16) tmp -= 16; print(tmp); } else { if(top < 0) error("stack underrun"); switch(program[i]) { case '!': print(stack[top]); break; case '>': print(stack[top]); top--; break; case '#': top++; stack[top] = stack[top - 1]; break; case 'z': print(stack[top]); case 'x': if(top < 0) error("stack underrun"); char tmp = stack[top]; stack[top] = stack[top - 1]; stack[top - 1] = tmp; break; case '*': stack[top] += 3; case '+': ++stack[top]; if(stack[top] >= 16) stack[top] -= 16; break; case '=': --stack[top]; case '-': --stack[top]; if(stack[top] < 0) stack[top] += 16; break; default: printf("%c", program[i]); } } } if(top >= 0) { for (i = top ; i >= 0 ; i--) { print(stack[i]); } } printf("\n"); return 0;}