teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記部分

2019/08/05 01:44

投稿

kokok
kokok

スコア145

title CHANGED
File without changes
body CHANGED
@@ -305,4 +305,89 @@
305
305
  7 8 9
306
306
  10 11 12
307
307
 
308
- このように表示したりしたいのですが、アドバイス頂けると幸いです。
308
+ このように表示したりしたいのですが、アドバイス頂けると幸いです。
309
+
310
+
311
+
312
+ -----追記-------
313
+
314
+ ```c
315
+ //カレンダーを表示する
316
+ void calendarprint(char calendar[N_MONTH][ROW_SIZE][N_WEEK], int year, int display) {
317
+
318
+ int month; //月のループ
319
+ int row; //週のループ
320
+ int col;//曜日のループ
321
+
322
+
323
+ printf("%5d年\n", year); // 入力された年を表示
324
+
325
+ for (month = JAN; month <= DEC; month+=display) {
326
+ for (int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++) {
327
+
328
+ printf(" %2d月 ", m + 1);
329
+ }
330
+ printf("\n\n");
331
+ for (int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++) {
332
+ for (int i = 0; i <= SAT; i++) {
333
+
334
+ printf(" %2s ", weeks[i]); //曜日の表示
335
+ if (i == SAT) {
336
+ printf(" ");
337
+ }
338
+ }
339
+ }
340
+ printf("\n");
341
+
342
+ for (row = 0; row < ROW_SIZE; row++) {
343
+ printf("\n");
344
+ for(int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++){
345
+
346
+ for (col = 0; col <= SAT; col++) {
347
+
348
+ if (calendar[month][row][col] != 0) //日数が0でなければ
349
+ {
350
+
351
+ if (calendar[month][row][col] & HOLI_MARK) {
352
+ printf("*");
353
+ }
354
+ else if (calendar[month][row][col] & TRANS_MARK) {
355
+ printf("+");
356
+ }
357
+ else if (calendar[month][row][col] & BIRTH_MARK) {
358
+ printf("&");
359
+ }
360
+ else {
361
+
362
+ printf(" ");
363
+ }
364
+ printf("%2d ", calendar[month][row][col] & 0x1F);
365
+ }
366
+ else { //日数が0なら
367
+ printf(" ");
368
+ }
369
+ if (col == SAT) {
370
+
371
+ printf(" ");
372
+ }
373
+ }
374
+ }
375
+ printf("\n");
376
+ }
377
+ printf("\n");
378
+ }
379
+ }
380
+
381
+ ```
382
+
383
+ カレンダーを表示の部分を回答を参考に自分なりに書いてみました。
384
+
385
+ しかし、表示の仕方を
386
+
387
+ 1 2 7 8
388
+ 3 4 9 10
389
+ 5 6 11 12
390
+
391
+ 上記ののように表示をしたいのですが、なかなかうまくいきません。
392
+
393
+ 追加でアドバイス頂けると幸いです。