• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:カレンダー作成)

カレンダー作成プログラムのエラー

このQ&Aのポイント
  • C言語初心者の方が、西暦と月を入力してその月のカレンダーを作成するプログラムを作成しようとしていますが、正しく表示されないエラーが発生しています。
  • プログラムの問題の原因は、[A]、[B]、[C]、[D]の部分で誤りがあることです。
  • 修正案として、[A]の部分を「i < month」に修正し、[B]の部分を「youbi = ((COMP + COMP /4 - COMP / 100 + COMP / 400) + (day - 1) + youbi) % 7」に修正することを提案します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yama5140
  • ベストアンサー率54% (136/250)
回答No.2

>カレンダーを作成するプログラムの問題なのですが >  if ([C]) >   printf("[%2d]", day); >  else >   printf(" %2d ", day);  うぅ~、難しい。  質問者様のように、その月の朔日が日曜なら、全ての日に [] を付ける、というのもありそうだし・・。  あと考えられるのは、特定曜日に [] を付ける、くらいかなぁ。 >カレンダーの表示すらされません。どこがいけないのでしょうか?  年月の取得で、   scanf("%4d%2d, &year, &month"); はマズイです。   scanf("%4d%2d", &year, &month); です。  あと、1週間が8日になっています。#1 さんが指摘した   if (youbi > 7) { は、 if( ycnt > 6 ){ です。  些末    for( j = 0, ycnt = 0; j < youbi; j++, ycnt++) {      printf("");    }    ↓ j は不要です    for( ycnt = 0; ycnt < youbi; ycnt++ ){      printf( " .. " );    }   (投稿すると、連続する空白は1つになるので、.. 使用) 脱線 それにつけても、年寄りは日曜から始まるカレンダーはどうも苦手です。 週末が週の頭にあるなんて・・。   http://www.nhk.or.jp/bunken/research/kotoba/kotoba_qq_04040101.html

shorinji36
質問者

お礼

回答有難うございます。 かなり答えに近づきました。 >質問者様のように、その月の朔日が日曜なら、全ての日に [] を付ける、というのもありそうだし・・。 []を付けるのは日曜です。 >些末 >for( j = 0, ycnt = 0; j < youbi; j++, ycnt++) { > printf(""); >} >↓ j は不要です >for( ycnt = 0; ycnt < youbi; ycnt++ ){ > printf( " .. " ); >} これは問題文なので変更できません。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>  if (youbi = 0) youbi と 0 とを比較してないですね。 また、 > youbi = ((COMP + COMP / 4 - COMP / 100 + COMP / 400) + mcnt) % 7; youbi は 0~6 の範囲の値を取ります。よって、 >  if (youbi > 7) { 7 を超えることは絶対にありません。

関連するQ&A