char * intToRoman(int num){
int n;
int x = 1000;
char* s1;
char* s = (char*)malloc(16 * sizeof(char));
s1=s;
while (x != 0) {
n = num / x % 10;
if (n != 0) {
if (x == 1000) {
if (n == 1) {
*s1++ = 'M';
}
if (n == 2) {
*s1++ = 'M';
*s1++ = 'M';
}
if (n == 3) {
*s1++ = 'M';
*s1++ = 'M';
*s1++ = 'M';
}
}
if (x == 100) {
if (n == 1) {
*s1++ = 'C';
}
if (n == 2) {
*s1++ = 'C';
*s1++ = 'C';
}
if (n == 3) {
*s1++ = 'C';
*s1++ = 'C';
*s1++ = 'C';
}
if (n == 4) {
*s1++ = 'C';
*s1++ = 'D';
}
if (n == 5) {
*s1++ = 'D';
}
if (n == 6) {
*s1++ = 'D';
*s1++ = 'C';
}
if (n == 7) {
*s1++ = 'D';
* s1++ = 'C';
*s1++ = 'C';
}
if (n == 8) {
*s1++ = 'D';
*s1++ = 'C';
*s1++ = 'C';
*s1++ = 'C';
}
if (n == 9) {
*s1++ = 'C';
*s1++ = 'M';
}
}
if (x == 10) {
if (n == 1) {
*s1++ = 'X';
}
if (n == 2) {
*s1++ = 'X';
*s1++ = 'X';
}
if (n == 3) {
*s1++ = 'X';
*s1++ = 'X';
*s1++ = 'X';
}
if (n == 4) {
*s1++ = 'X';
*s1++ = 'L';
}
if (n == 5) {
*s1++ = 'L';
}
if (n == 6) {
*s1++ = 'L';
*s1++ = 'X';
}
if (n == 7) {
*s1++ = 'L';
*s1++ = 'X';
*s1++ = 'X';
}
if (n == 8) {
*s1++ = 'L';
*s1++ = 'X';
*s1++ = 'X';
*s1++ = 'X';
}
if (n == 9) {
*s1++ = 'X';
*s1++ = 'C';
}
}
if (x == 1) {
if (n == 1) {
*s1++ = 'I';
}
if (n == 2) {
*s1++ = 'I';
*s1++ = 'I';
}
if (n == 3) {
*s1++ = 'I';
*s1++ = 'I';
*s1++ = 'I';
}
if (n == 4) {
*s1++ = 'I';
*s1++ = 'V';
}
if (n == 5) {
*s1++ = 'V';
}
if (n == 6) {
*s1++ = 'V';
*s1++ = 'I';
}
if (n == 7) {
*s1++ = 'V';
*s1++ = 'I';
*s1++ = 'I';
}
if (n == 8) {
*s1++ = 'V';
*s1++ = 'I';
*s1++ = 'I';
*s1++ = 'I';
}
if (n == 9) {
*s1++ = 'I';
*s1++ = 'X';
}
}
}
x = x / 10;
}
return s;
}
该如何解决