//**
//CSE 121
//Roman Numerals
//This program will take integers and convert them to Roman Numerals
#include <stdio.h>
#include <string.h>
main()
{
int a,b,c,d,e;
char string0[30] = "";
char string1[10] = "1";
char string2[10] = "2";
char string3[10] = "3";
char string4[10] = "4";
printf("\nPlease enter an integer. (Only 1 integer, between 0 - 9999):\n");
scanf("%d", &e);
if (isdigit(e))
{
printf("\nError: %d is not a digit.\n", e);
return(0);
}
if (e < 0)
{
printf("\nError: You have entered an invalid number.\n\n");
return(0);
}
if (e > 9999)
{
printf("\nError: You have entered an invalid number.\n\n");
return(0);
}
printf("\n");
a = (e/1000)*1000;
b = ((e/100)%10)*100;
c = ((e/10)%10)*10;
d = ((e/1)%10)*1;
//Conversion to roman numerals happens here
//If 0 print N
if (a == 0 && b == 0 && c == 0 && d == 0)
{
printf("N");
char string1[] = "M";
}
//Thousands column
if (a == 1000)
{
printf("M");
char string1[] = "M";
}
else if (a == 2000)
{
printf("MM");
char string1[] = "MM";
}
else if (a == 3000)
{
printf("MMM");
char string1[] = "MMM";
}
else if (a == 4000)
{
printf("MMMM");
char string1[] = "MMMM";
}
else if (a == 5000)
{
printf("MMMMM");
char string1[] = "MMMMM";
}
else if (a == 6000)
{
printf("MMMMMM");
char string1[] = "MMMMMM";
}
else if (a == 7000)
{
printf("MMMMMMM");
char string1[] = "MMMMMMM";
}
else if (a == 8000)
{
printf("MMMMMMMM");
char string1[] = "MMMMMMMM";
}
else if (a == 9000)
{
printf("MMMMMMMMM");
char string1[] = "MMMMMMMMM";
}
//Hundreds Column
if (b == 100)
{
printf("C");
char string2[] = "C";
}
else if (b == 200)
{
printf("CC");
char string2[] = "CC";
}
else if (b == 300)
{
printf("CCC");
char string2[] = "CCC";
}
else if (b == 400)
{
printf("CD");
char string2[] = "CD";
}
else if (b ==500)
{
printf("D");
char string2[] = "D";
}
else if (b == 600)
{
printf("DC");
char string2[] = "DC";
}
else if (b == 700)
{
printf("DCC");
char string2[] = "DCC";
}
else if (b ==800)
{
printf("DCCC");
char string2[] = "DCCC";
}
else if (b == 900)
{
printf("CM");
char string2[] = "CM";
}
//Tens Column
if (c == 10)
{
printf("X");
char string3[] = "X";
}
else if (c == 20)
{
printf("XX");
char string3[] = "XX";
}
else if (c == 30)
{
printf("XXX");
char string3[] = "XXX";
}
else if (c == 40)
{
printf("XL");
char string3[] = "XL";
}
else if (c ==50)
{
printf("L");
char string3[] = "L";
}
else if (c == 60)
{
printf("LX");
char string3[] = "LX";
}
else if (c == 70)
{
printf("LXX");
char string3[] = "LXX";
}
else if (c ==80)
{
printf("LXXX");
char string3[] = "LXXX";
}
else if (c == 90)
{
printf("XC");
char string3[] = "XC";
}
//Ones column
if (d == 1)
{
printf("I");
char string4[] = "I";
}
else if (d == 2)
{
printf("II");
char string4[] = "II";
}
else if (d == 3)
{
printf("III");
char string4[] = "III";
}
else if (d == 4)
{
printf("IV");
char string4[] = "IV";
}
else if (d == 5)
{
printf("V");
char string4[] = "V";
}
else if (d == 6)
{
printf("VI");
char string4[] = "VI";
}
else if (d == 7)
{
printf("VII");
char string4[] = "VII";
}
else if (d == 8)
{
printf("VIII");
char string4[] = "VII";
}
else if (d == 9)
{
printf("IX");
char string4[] = "IX";
}
printf("\n\n");
printf("%s\n", string1);
printf("%s\n", string2);
printf("%s\n", string3);
printf("%s\n", string4);
//char *strcat(string0,string1);
//char *strcat(string0,string2);
//char *strcat(string0,string3);
//char *strcat(string0,string4);
//printf("%s", string0);
//Print results to screen
//printf("This result will be logged in the file roman_numerals.txt\n");
// Identify, open, append, and close output file
//FILE* output_file;
//output_file = fopen("roman_numerals.txt", "a");
//fprintf(output_file,"The Roman Numeral value of %i is %s. \n",e,string0);
//fclose(output_file);
return(0);
}
I'm having problems on line 61, 67, 72, etc. I cannot get it to write the thing I have entered to the string. It clean compiles, I just cannot get it to write to the string.
What I want it to do: Print the conversion to the string & store that value in it's respective string. So for example, 1000 would output "M" to the screen and store "M" in string1.
Thank you in advance!
Output:
Please enter an integer. (Only 1 integer, between 0 - 9999):
1000
M
1
2
3
4