- 締切済み
万年カレンダー
万年カレンダー作ろうとしているのですが、ここからの作り方がわかりませんので、教えてください。 int youbi_chk(int,int,int); int uru_chk(int); void main(void) { int yy,mm; char week[7][4]={\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"}; int mday[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf(\"年(西暦:4桁)を入力して下さい:\"); scanf(\"%d\",&yy); printf(\"月を入力して下さい:\"); scanf(\"%d\",&mm);
- みんなの回答 (9)
- 専門家の回答
みんなの回答
- S117
- ベストアンサー率40% (18/45)
#8です。 すみません。思いっきり間違ってました。 「hellow, world」じゃなくて、「hello, world」ですね。
- S117
- ベストアンサー率40% (18/45)
回答者の皆さんは不親切だねぇ。 >質問者様へ まず、現在書かれている部分から見ると、基礎がまったく出来てません。まずは、適切な参考書で学習してください。「hellow,world」を画面に表示するプログラムを書くことから丁寧に解説されているでしょう。だれだって、いきなり万年カレンダーのプログラムを組めと言われても普通は組めません。 みな地道に勉強したのです。では、がんばってください。
- tatsu99
- ベストアンサー率52% (391/751)
ここのサイトへ丸投げしても、期待した結果は得られません。 参考URLのほうへ、丸投げされてみてはいかがでしょうか。
- okazaki0ko
- ベストアンサー率15% (37/238)
#4へ。 おまえ、何様のつもりだ? > > > char week[7][4]={\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"}; > > > > ってダメでしょ。 > > 何がどうダメなのか書かないと…。 課題の丸投げが明白だから、ダメなところを指摘しただけだ。 ダメな理由は本人が考えること。 何しろ、 > ここからの作り方がわかりません って、「ここまで」って何もしてしないだろうよ。 見落としていたが、printf()もscanf()も同じミスしている。 確かに、配列の要素は省略箇所を間違ったが、配列の大きさを省略する理由も、本人が考えることだ。 幸い、#5にプログラミングの流れを丁寧に教えてくれている人がいるから参考にすべきだ。 まあ、万年カレンダーで必ず出てくる、「あの公式」が出てきていない時点でダメダメなんだけど。
こんにちは。 プログラミングの初心者の方に多いのですが 問題 → コーディング のステップで解こうとすると絶対に解けません。 料理に例えると、完成した写真を見ていきなり材料を切るのと同じです。 まず料理を作る為の大まかなレシピを作り、そのレシピを完成させる為に 必要な作業を細かく分解していきましょう。 それができてから初めて料理を開始できます。 問題 → 読解 → 処理の分解 → コーディングの順で進めてください。 問題: 万年カレンダーを作成する 読解: カレンダーを作るにはどうすればいいか? → 年月を入れるとその月のカレンダーが出ればいい その為には何があればいいか? → 初日の曜日と表示する日数があればいい 処理の分解: 以下の処理をすればカレンダーができます。 1.年と月を入力する 2.年と月を基にして初日の曜日と日数を計算する 3.初日の曜日と日数を基にしてカレンダー形式で出力する あとは1.2.3.についてさらに処理を細かく分解していきます。 そして他人が聞いても十分に理解できる位まで細かく分解します。 コーディング: 細かく分解した処理を各プログラミング言語に変換します。 以上のように進めてください。
- asuncion
- ベストアンサー率33% (2127/6289)
> > char week[7][4]={\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"}; > > ってダメでしょ。 何がどうダメなのか書かないと…。 > char week[][]=...; > int mday[]=...; > > と配列の中を省略すること。 まるで必ず省略しなければならないように書かれていますが、 そういうことはありません。書いてもかまいません。 ところで、 > char week[][]=...; これでコンパイルできるコンパイラーがあるかもしれませんが、 一般的には、要素数を「すべて」省略することはできません。 char week[][4]=...; のように、「先頭要素」の要素数は省略できます。それ以外は省略できません。
- 0x131cc6e
- ベストアンサー率36% (42/115)
どうぞ。 テーマは「without reinventing the wheel」です。 --- #include <stdio.h> #define BUF_SIZE 255 int main( int argc, char* argv[] ) { int nYear, nMonth; char acCmd[BUF_SIZE] ; char acBuf[BUF_SIZE] ; printf( "input year >" ) ; scanf( "%d", &nYear ) ; printf( "input month >" ) ; scanf( "%d", &nMonth ) ; sprintf( acCmd, "cal %d %d", nMonth, nYear ) ; FILE *pin = popen( acCmd, "r" ) ; if ( pin ) { while( fgets( acBuf, BUF_SIZE, pin ) ) { printf( acBuf ) ; } pclose( pin ) ; } return 0 ; } --- <注意事項> ・scanfを使う場合の危険性は無視しています。 ・入力値のチェックも省いています。 ・Linux/MacOS X/Solaris/AIXなどUNIX系限定です。 ・アレンジしたら年間カレンダー(12ヶ月分表示)も可能ですw ・これをそのままコピペして学校で提出するとたぶん怒られますww
- okazaki0ko
- ベストアンサー率15% (37/238)
「ここから」って、アルゴリズムの根本ができていない気がするのは私だけでしょうか? それと、 > char week[7][4]={\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"}; ってダメでしょ。 main()は、int型。 > char week[7][4]={\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"}; > int mday[12]={31,28,31,30,31,30,31,31,30,31,30,31}; のように、配列の要素を指定するときは、 char week[][]=...; int mday[]=...; と配列の中を省略すること。
- asuncion
- ベストアンサー率33% (2127/6289)
> int youbi_chk(int,int,int); > int uru_chk(int); では手始めに、これら2つの関数の引数と戻り値の意味について 解説をお願いいたします。 プロトタイプ宣言があるということは、中身をある程度設計できているものと思います。