#include #include void binary(int n) { if (n > 0) { binary(n / 2); printf("%d", n % 2); } } int decimal(char *bin) { int n = strlen(bin) - 1; int y = bin[0] - 48; int i; for (i = 1; i <= n; i++) y = y * 2 + bin[i] - 48;\ return y; } int main() { start: printf("Wybierz opcje:\n"); printf("1 - konwersja z systemu dziesietnego na dwojkowy;\n"); printf("2 - konwersja z systemu dwojkowego na dziesietny;\n"); printf("3 - zakoncz program;\n"); int menu; int a,c; char b[15]=""; int nr = 75065; scanf_s("%d", &menu); switch (menu) { case 1: printf("Podaj liczbe w systemie dziesiatkowym:\n"); scanf_s("%d", &a); if ((a >= 0) && (a <= nr)) { printf("\n %d(10) = ", a); binary(a); printf("(2)"); } else { printf("Liczba spoza zakresu!\n\n"); goto start; break; } case 2: printf("Podaj liczbe w systemie dwojkowym:\n"); scanf_s("%s", &b); c = decimal(b); if ((c >= 0) && (c <= nr)) { printf("\n %s(2) = %d(10)", b,c);} else { printf("Liczba spoza zakresu!\n\n"); goto start; break; } case 3: break; default: goto start; } return 0; }