# include # include *char spocti(*char s1,*char s2,int typs); int GET_VALUE(char c); char GET_CHAR_VALUE(int i); char *mys1=NULL; char *mys2=NULL; char *result=NULL; int j; int max; int min; int soucet; int addon; int main() {int control=0; int typ=0; char *char1=NULL; char *char2=NULL; control=0; result=(char*) malloc(1000); mys1=(char*) malloc(1000); mys2=(char*) malloc(1000); char1=(char*) malloc (1000); char2=(char*) malloc (1000); while (control==0) { scanf("%d",typ); if (typ==0) {control=-1; continue;}; scanf("%s %s",char1,char2); sprintf("%s + %s = %s\n",char1,char2,spocti(char1,char2,typ)); }; return 0; } *char spocti(*char s1,*char s2,int typs) { addon=0; soucet=0; strrcpy(mys2,s2); strrcpy(mys1,s1); if (strlen(mys1)>strlen(mys2)) {min=strlen(mys2); max=strlen(mys1);} else {min=strlen(mys1); max=strlen(mys2);}; for (j=0;jtyp) {soucet=soucet-typ; addon=(addon+1);}; if (sprintf(result+strlen(result),GET_CHAR_VALUE(soucet))==0) ; }; if (min==max) { if (addon) {strcat(result,GET_CHAR_VALUE(1));}; return strrcpy(result,result); } if (strlen(mys1)>strlen(mys2)) {mys2=mys1;}; for (j=min;jtyp) {soucet-=typ; addon=(addon+1);}; if (sprintf(result+strlen(result),GET_CHAR_VALUE(soucet))==0); } return strrcpy(result,result); } int GET_VALUE(char c) { switch(c) { case '0': return 0; break; case '1': return 1; break; case '2': return 2; break; case '3': return 3; break; case '4': return 4; break; case '5': return 5; break; case '6': return 6; break; case '7': return 7; break; case '8': return 8; break; case '9': return 9; break; case 'A': return 10; break; case 'B': return 11; break; case 'C': return 12; break; case 'D': return 13; break; case 'E': return 14; break; case 'F': return 15; break; case 'G': return 16; break; case 'H': return 17; break; case 'I': return 18; break; case 'J': return 19; break; case 'K': return 20; break; case 'L': return 21; break; case 'M': return 22; break; case 'N': return 23; break; case 'O': return 24; break; case 'P': return 25; break; case 'Q': return 26; break; case 'R': return 27; break; case 'S': return 28; break; case 'T': return 29; break; case 'U': return 30; break; case 'V': return 31; break; case 'W': return 32; break; case 'X': return 33; break; case 'Y': return 34; break; case 'Z': return 35; break; default : exit(1); break; } } char GET_CHAR_VALUE(int i) { switch(i) { case 0: return '0'; break; case 1: return '1'; break; case 2: return '2'; break; case 3: return '3'; break; case 4: return '4'; break; case 5: return '5'; break; case 6: return '6'; break; case 7: return '7'; break; case 8: return '8'; break; case 9: return '9'; break; case 10: return 'A'; break; case 11: return 'B'; break; case 12: return 'C'; break; case 13: return 'D'; break; case 14: return 'E'; break; case 15: return 'F'; break; case 16: return 'G'; break; case 17: return 'H'; break; case 18: return 'I'; break; case 19: return 'J'; break; case 20: return 'K'; break; case 21: return 'L'; break; case 22: return 'M'; break; case 23: return 'N'; break; case 24: return 'O'; break; case 25: return 'P'; break; case 26: return 'Q'; break; case 27: return 'R'; break; case 28: return 'S'; break; case 29: return 'T'; break; case 30: return 'U'; break; case 31: return 'V'; break; case 32: return 'W'; break; case 33: return 'X'; break; case 34: return 'Y'; break; case 35: return 'Z'; break; default : exit(1); break; } }