#9
by かずま » 5年前
次のコードは、999以下の自然数という制限に反するので
解答ではありませんが、参考にはなるでしょう。
コード:
#include <stdio.h>
int main(void)
{
static char *s[] = {
"One", "Ten", "Hundred", "Thousand",
"Ten thousand", "Hundred thousand", "Million",
"Ten million", "Hundred million", "Billion"
};
char d[10];
int y, i = 0;
printf("Input a positive number: ");
if (scanf("%d", &y) != 1 || y < 0) return 1;
do d[i++] = y % 10 + '0'; while (y /= 10);
while (--i >= 0) printf(" %s's digit: %c\n", s[i], d[i]);
}
実行例
コード:
Input a positive number: 2147483647
Billion's digit: 2
Hundred million's digit: 1
Ten million's digit: 4
Million's digit: 7
Hundred thousand's digit: 4
Ten thousand's digit: 8
Thousand's digit: 3
Hundred's digit: 6
Ten's digit: 4
One's digit: 7
次のコードは、999以下の自然数という制限に反するので
解答ではありませんが、参考にはなるでしょう。
[code]
#include <stdio.h>
int main(void)
{
static char *s[] = {
"One", "Ten", "Hundred", "Thousand",
"Ten thousand", "Hundred thousand", "Million",
"Ten million", "Hundred million", "Billion"
};
char d[10];
int y, i = 0;
printf("Input a positive number: ");
if (scanf("%d", &y) != 1 || y < 0) return 1;
do d[i++] = y % 10 + '0'; while (y /= 10);
while (--i >= 0) printf(" %s's digit: %c\n", s[i], d[i]);
}
[/code]
実行例
[code=text]
Input a positive number: 2147483647
Billion's digit: 2
Hundred million's digit: 1
Ten million's digit: 4
Million's digit: 7
Hundred thousand's digit: 4
Ten thousand's digit: 8
Thousand's digit: 3
Hundred's digit: 6
Ten's digit: 4
One's digit: 7
[/code]