10進数をローマンに変換する単純な関数ですが、関数からこの文字列を返すにはどうすればよいですか?私はこの解決策を試みたが、私のプログラムはクラッシュする。メインでCで10進数をローマンに変換する - 関数から文字列を返す方法は?
char roman(int number)
{
char ROMAN[][3] = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
int NUM[] = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
int i;
char buff[100]="\0";
for(i = 0; number > 0 && number < 3999; i++)
while(number/NUM[i]){
strcat(buff,ROMAN[i]);
number -= NUM[i];
}
return buff;
}
私が得た:助けを
感謝を。
最も簡単なことは、バッファを 'main'に宣言し、それを関数に渡すことです。したがって、関数の署名は 'void roman(int number、char buff [100])'です。 – user3386109
ところで、 'number <4000'と思ってください。 – chux