回答編集履歴
2
文字列配列の参照方法を訂正
answer
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
※単語はそのままだと他国語の文字コード系のエラーが出たので数字で置き換えました。
|
2
|
-
|
2
|
+
元のコードの原型はありませんがロジックだけでも参考になればと思います。
|
3
3
|
```C
|
4
|
-
#define _CRT_SECURE_NO_WARNINGS
|
5
|
-
#include <stdio.h>
|
4
|
+
#include <stdio.h>
|
6
|
-
#include <stdlib.h> //malloc
|
7
|
-
#include <string.h> //strcpy
|
8
5
|
|
9
|
-
void
|
6
|
+
void func(int n) {
|
10
|
-
char unit[10][
|
7
|
+
const char unit[10][3] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
|
11
|
-
char tens[9][
|
8
|
+
const char tens[9][4] = {"10", "20", "30", "40", "50",
|
9
|
+
"60", "70", "80", "90"};
|
12
10
|
if (n / 10) {
|
13
11
|
if (n % 10) {
|
14
|
-
printf("%02d %s %s\n", n, &tens[(n / 10)
|
12
|
+
printf("%02d %s %s\n", n, &tens[(n / 10)], &unit[(n % 10)]);
|
15
13
|
} else {
|
16
|
-
printf("%02d %s\n", n, &tens[(n / 10)
|
14
|
+
printf("%02d %s\n", n, &tens[(n / 10)]);
|
17
15
|
}
|
18
16
|
} else {
|
19
|
-
printf("%02d %s\n", n, &unit[n
|
17
|
+
printf("%02d %s\n", n, &unit[n]);
|
20
18
|
}
|
21
19
|
}
|
22
20
|
int main() {
|
23
21
|
for (int i = 0; i < 100; i++) {
|
24
|
-
|
22
|
+
func(i);
|
25
23
|
}
|
26
24
|
getchar();
|
27
|
-
return 0;
|
28
25
|
}
|
29
26
|
```
|
30
27
|
```output
|
1
10,20の時の修正
answer
CHANGED
@@ -10,7 +10,11 @@
|
|
10
10
|
char unit[10][7] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
|
11
11
|
char tens[9][8] = {"10", "20", "30", "40", "50", "60", "70", "80", "90"};
|
12
12
|
if (n / 10) {
|
13
|
+
if (n % 10) {
|
13
|
-
|
14
|
+
printf("%02d %s %s\n", n, &tens[(n / 10) - 2][8], &unit[(n % 10) - 1][7]);
|
15
|
+
} else {
|
16
|
+
printf("%02d %s\n", n, &tens[(n / 10) - 2][8]);
|
17
|
+
}
|
14
18
|
} else {
|
15
19
|
printf("%02d %s\n", n, &unit[n - 1][7]);
|
16
20
|
}
|
@@ -22,9 +26,9 @@
|
|
22
26
|
getchar();
|
23
27
|
return 0;
|
24
28
|
}
|
25
|
-
|
26
29
|
```
|
27
30
|
```output
|
31
|
+
|
28
32
|
00 0
|
29
33
|
01 1
|
30
34
|
02 2
|
@@ -35,7 +39,7 @@
|
|
35
39
|
07 7
|
36
40
|
08 8
|
37
41
|
09 9
|
38
|
-
10 10
|
42
|
+
10 10
|
39
43
|
11 10 1
|
40
44
|
12 10 2
|
41
45
|
13 10 3
|
@@ -45,5 +49,6 @@
|
|
45
49
|
17 10 7
|
46
50
|
18 10 8
|
47
51
|
19 10 9
|
52
|
+
20 20
|
48
|
-
|
53
|
+
21 20 1
|
49
54
|
```
|