#include #include #define BUF 33 #define NUM 11 long str2int(char*pn, int osn){//схема Горнера для забитого числа----------------------------------------------- int t; long num=0; while(*pn){ num*= osn; t=(isdigit(*pn) ? *pn- '0': *pn- 'A' +10); if(t> osn){ printf(" Element(%d) is out of osn(%d)!!\n", t, osn); fprintf(file_out," Element(%d) out of osn!!\n", t); //*pn=0; pn=bnum; er=1; /*return ++wr; return er=1;*///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! }//if num+=t; ++pn; }//while return num; } int main() {//RE gorner char buf[BUF]={0},*pb=buf+BUF, number[11]={0}, *pn=number; int osn_in, osn_out, num10=0; int num, t; osn_in=16; printf("Inser a number\n"); gets(number); printf("Insert osn_in & osn_out\n"); scanf("%d%d", &osn_in, &osn_out); t=0; num10=0; while(*pn) { num10*=osn_in; num10=num10+((t=toupper(*pn), t>'9')?(t+10-'A'):(t-'0')); *++pn; } printf("NUM(10)= %d\n", num10); *--pb=0; while(num10){ *--pb = ( ( t = num10 % osn_out , t > 9 ) ? ( 'A' + t - 10 ) : ( '0' + t ) ); num10 /= osn_out; } printf("NUM(%d)=%s", osn_out, pb); getchar(); getchar(); return 0; }