C/C++の宿題やらせてください。おながいします
■ このスレッドは過去ログ倉庫に格納されています
0491デフォルトの名無しさん
NGNG計算方法自体は結構まとも。
ただし、実用化するなら、実装は関数にした方がいい。
データも、生の int の配列よりも、struct や typedef で名前付けし、実装は隠蔽
した方がいい。
それにより、固定長だけではなく、malloc() を駆使して可変長も実装できる。
C++ であれば class にするべき。
出力ロジックが冗長なのは、桁名を配列にすれば解決する。
void PrintNumber(int Num[], int size)
{
const char * const ColNames[] = { "", "万", "億", "兆", "京", "垓", "穰", "溝", "澗", "正", "載", "極", "恒河沙", "阿僧祇", "那由他", "不可思議", "無量大数" };
const int NumOfColNames = sizeof(ColNames) / sizeof(const char *);
char *s = "";
int i;
for(i = size - 1; i > 0; i--)
if(Num[i]) break;
if(i < 0)
{ puts("0"); return; }
for(; i >= NumOfColNames; i--)
if(Num[i]) { printf("%s%d単位%d", s, Num[i], i); s = " "; }
for(; i >= 0; i--)
if(Num[i]) { printf("%s%d%s", s, Num[i], ColNames[i]); s = " "; }
putchar('\n');
}
■ このスレッドは過去ログ倉庫に格納されています