質問編集履歴

1

追記部分

2019/08/05 01:44

投稿

kokok
kokok

スコア145

test CHANGED
File without changes
test CHANGED
@@ -613,3 +613,173 @@
613
613
 
614
614
 
615
615
  このように表示したりしたいのですが、アドバイス頂けると幸いです。
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+ -----追記-------
624
+
625
+
626
+
627
+ ```c
628
+
629
+ //カレンダーを表示する
630
+
631
+ void calendarprint(char calendar[N_MONTH][ROW_SIZE][N_WEEK], int year, int display) {
632
+
633
+
634
+
635
+ int month; //月のループ
636
+
637
+ int row; //週のループ
638
+
639
+ int col;//曜日のループ
640
+
641
+
642
+
643
+
644
+
645
+ printf("%5d年\n", year); // 入力された年を表示
646
+
647
+
648
+
649
+ for (month = JAN; month <= DEC; month+=display) {
650
+
651
+ for (int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++) {
652
+
653
+
654
+
655
+ printf(" %2d月 ", m + 1);
656
+
657
+ }
658
+
659
+ printf("\n\n");
660
+
661
+ for (int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++) {
662
+
663
+ for (int i = 0; i <= SAT; i++) {
664
+
665
+
666
+
667
+ printf(" %2s ", weeks[i]); //曜日の表示
668
+
669
+ if (i == SAT) {
670
+
671
+ printf(" ");
672
+
673
+ }
674
+
675
+ }
676
+
677
+ }
678
+
679
+ printf("\n");
680
+
681
+
682
+
683
+ for (row = 0; row < ROW_SIZE; row++) {
684
+
685
+ printf("\n");
686
+
687
+ for(int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++){
688
+
689
+
690
+
691
+ for (col = 0; col <= SAT; col++) {
692
+
693
+
694
+
695
+ if (calendar[month][row][col] != 0) //日数が0でなければ
696
+
697
+ {
698
+
699
+
700
+
701
+ if (calendar[month][row][col] & HOLI_MARK) {
702
+
703
+ printf("*");
704
+
705
+ }
706
+
707
+ else if (calendar[month][row][col] & TRANS_MARK) {
708
+
709
+ printf("+");
710
+
711
+ }
712
+
713
+ else if (calendar[month][row][col] & BIRTH_MARK) {
714
+
715
+ printf("&");
716
+
717
+ }
718
+
719
+ else {
720
+
721
+
722
+
723
+ printf(" ");
724
+
725
+ }
726
+
727
+ printf("%2d ", calendar[month][row][col] & 0x1F);
728
+
729
+ }
730
+
731
+ else { //日数が0なら
732
+
733
+ printf(" ");
734
+
735
+ }
736
+
737
+ if (col == SAT) {
738
+
739
+
740
+
741
+ printf(" ");
742
+
743
+ }
744
+
745
+ }
746
+
747
+ }
748
+
749
+ printf("\n");
750
+
751
+ }
752
+
753
+ printf("\n");
754
+
755
+ }
756
+
757
+ }
758
+
759
+
760
+
761
+ ```
762
+
763
+
764
+
765
+ カレンダーを表示の部分を回答を参考に自分なりに書いてみました。
766
+
767
+
768
+
769
+ しかし、表示の仕方を
770
+
771
+
772
+
773
+ 1 2 7 8
774
+
775
+ 3 4 9 10
776
+
777
+ 5 6 11 12
778
+
779
+
780
+
781
+ 上記ののように表示をしたいのですが、なかなかうまくいきません。
782
+
783
+
784
+
785
+ 追加でアドバイス頂けると幸いです。