Im about to pull my hair out. So my task is to have the user input a number from 1 to 20 and I'm supposed to set up a long switch statement to take the number and output it as a roman numeral. I'm fairly new to C so go easy on me.
The warnings I'm getting are in the switch statement from the second case where I try to change the roman char to something. I get an overflow in implicit constant conversion.
Again, they're just warnings but the program wont let me compile. I guess I don't fully understand how the concept of strings in C. After looking up online stuff for strings in C, I'm still not sure why those wont work. Any help would be grand.
Code:#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void){ // variable int num; char roman = 0; // get input from user printf("Enter a number between 1 and 20: "); scanf("%d", &num); // call method romanNumeral(num, roman); system("pause"); return 0; } // end of main int romanNumeral(int num, char roman){ // roman numeral switch statement switch(num){ case 1: roman = 'I'; break; case 2: roman = 'II'; break; case 3: roman = 'III'; break; case 4: roman = 'IV'; break; case 5: roman = 'V'; break; case 6: roman = 'VI'; break; case 7: roman = 'VII'; break; case 8: roman = 'VIII'; break; case 9: roman = 'IX'; break; case 10: roman = 'X'; break; case 11: roman = 'XI'; break; case 12: roman = 'XII'; break; case 13: roman = 'XIII'; break; case 14: roman = 'XIV'; break; case 15: roman = 'XV'; break; case 16: roman = 'XVI'; break; case 17: roman = 'XVII'; break; case 18: roman = 'XVIII'; break; case 19: roman = 'XIX'; break; case 20: roman = 'XX'; break; default: num = -1; } // end of switch // if/else statement to verify number if (num < 1 || num > 20){ printf("Error: Invalid Number."); } else { printf("Roman Numeral %d: %s", num, roman); } } // end of function



LinkBack URL
About LinkBacks




