Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void selection() {
- printf(" 1. Entering the natural number\n 2. Output the value of entered number in decimal, octal and hexadecimal form.\n 3. Output of a entered reversed natural number in decimal form.\n 4. Your natural number convertation to the number system with base n [2..16]. \n 5. Information about the version and author of the program. \n 6. Exit\n");
- }
- int enter_number() {
- int num;
- printf("Entering the natural number:\n");
- while (!(scanf_s("%d", &num)) || num <= 0) {
- rewind(stdin);
- printf("You entered wrong value.\nPlease, enter natural number.\n");
- }
- printf("You've entered number %d. \n", num);
- return num;
- }
- void convert8(int number) {
- if (number >= 8)
- convert8(number / 8);
- printf("%d", number % 8);
- }
- void convert16 (int number) {
- int result;
- if (number >= 16) {
- result = number % 16;
- number /= 16;
- convert16(number);
- printf("%c", result > 9 ? result - 10 + 'A' : result + '0');
- } else {
- printf("%c", number > 9 ? number - 10 + 'A' : number + '0');
- }
- }
- void reversed_number (int number) {
- int result;
- while (number > 0) {
- result = number % 10;
- printf("%d", result);
- number /= 10;
- }
- }
- int radix_input() {
- int radix;
- printf("Enter the radix from 2 to 16: ");
- while (!(scanf_s("%d", &radix)) || radix < 2 || radix > 16) {
- rewind(stdin);
- printf("You entered wrong value.\nPlease, enter the radix from 2 to 16.\n");
- }
- return radix;
- }
- void convert_2_16(int number, int radix) {
- int result;
- if (number >= radix) {
- result = number % radix;
- number /= radix;
- convert_2_16(number, radix);
- printf("%c", result > 9 ? result - 10 + 'A' : result + '0');
- }
- else {
- printf("%c", number > 9 ? number - 10 + 'A' : number + '0');
- }
- }
- void output1_dec_oct_hex(int number) {
- printf("Your number was: ");
- printf("%d\n", number);
- printf("Your number in decimal form is: ");
- printf("%d\n", number);
- printf("Your number in octal form is: ");
- convert8(number);
- printf("\nYour number in hexadecimal form is: ");
- convert16(number);
- }
- void infotmation() {
- printf("Release version 1.0\nCopyright (c) 2018 Tonya-chan\n");
- }
- int main() {
- int number = 0, radix = 0;
- int switch_c;
- selection();
- do {
- printf("\n\nEnter 0 to get selection information.\n");
- printf("Enter from 0 to 6 to choose.\n");
- while (!(scanf_s("%d", &switch_c)) || switch_c < 0 || switch_c > 6) {
- rewind(stdin);
- printf("You entered wrong value.\nPlease, enter from 0 to 6.\n");
- }
- switch (switch_c) {
- case 0:
- system("CLS");
- selection();
- break;
- case 1:
- system("CLS");
- number = enter_number();
- break;
- case 2:
- system("CLS");
- output1_dec_oct_hex(number);
- break;
- case 3:
- system("CLS");
- reversed_number(number);
- break;
- case 4:
- system("CLS");
- radix = radix_input();
- convert_2_16(number, radix);
- break;
- case 5:
- system("CLS");
- infotmation();
- break;
- case 6:
- system("CLS");
- printf("Bye!\n");
- system("exit");
- }
- } while (switch_c != 6);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement