Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "roman_converter.h"
- char *hundreds[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
- char *tens[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
- char *ones[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
- /*
- * Function: ConvertToRoman
- * ----------------------------
- * Convert Arabic number to Roman number.
- * number: Arabic number.
- * returns: Roman number.
- */
- char* ConvertToRoman(int number) {
- if (number <= 0 || number >= 4999)
- return NULL;
- else {
- char roman[12] = "";
- char* thousands[] = {"", "M", "MM", "MMM", "MMMM"};
- int thousand, hundred, ten, one;
- one = number % 10;
- ten = (number / 10) % 10;
- hundred = (number / 100) % 10;
- thousand = (number / 1000) % 10;
- strcat(roman, thousands[thousand]);
- strcat(roman, hundreds[hundred]);
- strcat(roman, tens[ten]);
- strcat(roman, ones[one]);
- // return roman;
- char* Return = malloc(sizeof (char)*12);
- strcpy(Return, strcat);
- return Return;
- }
- }
- int main() {
- printf("========== Arabic-Roman numerals converter ==========\n");
- printf("This program is about to convert a number from Arabic to Roman.\n");
- printf("(number must be an integer, larger than 0 and smaller than 4000\nEnter number: ");
- int number;
- scanf("%d", &number);
- char* roman = ConvertToRoman(number);
- if (roman == NULL)
- printf("Invalid input!\n");
- else
- printf("Value of Roman number is: %s", roman);
- }
- RomanConvert.h
- #ifndef ROMAN_CONVERTER_H
- #define ROMAN_CONVERTER_H
- char* ConvertToRoman(int number);
- #endif /* ROMAN_CONVERTER_H */
Advertisement
Add Comment
Please, Sign In to add comment