回答編集履歴
2
表示のずれについて回答を追加
test
CHANGED
@@ -91,3 +91,35 @@
|
|
91
91
|
}
|
92
92
|
|
93
93
|
```
|
94
|
+
|
95
|
+
**追記**
|
96
|
+
|
97
|
+
質問が最初と変わっていますね。
|
98
|
+
|
99
|
+
新たな質問の場合、元の質問を残したうえで、追記しましょう。
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
printf("%-24s" の 24 はバイト数です。
|
104
|
+
|
105
|
+
文字コードが Shift-JIS の場合は、漢字は 2バイトで表示幅も2桁ですが、
|
106
|
+
|
107
|
+
文字コードが UTF-8 の場合は、漢字は 3バイトなのでずれます。
|
108
|
+
|
109
|
+
次のようにすればよいでしょう。
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
```diff
|
114
|
+
|
115
|
+
- sprintf(s[0], " %4d年%2d月", y, m);
|
116
|
+
|
117
|
+
+ sprintf(s[0], " %4d年%2d月 ", y, m);
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
- printf("%-24s",calender[row*COL+col][i]);
|
122
|
+
|
123
|
+
+ printf("%s ",calender[row*COL+col][i]);
|
124
|
+
|
125
|
+
```
|
1
リファクタリング
test
CHANGED
@@ -68,11 +68,11 @@
|
|
68
68
|
|
69
69
|
{
|
70
70
|
|
71
|
-
for (int m = 1
|
71
|
+
for (int m = 1; m < 12; m += COL) {
|
72
72
|
|
73
73
|
int a[COL][6][7] = { 0 };
|
74
74
|
|
75
|
-
for (int
|
75
|
+
for (int i = 0; i < COL; i++) set(a[i], y, m + i);
|
76
76
|
|
77
77
|
print(a, y, m);
|
78
78
|
|