質問閲覧ありがとうございます。
高校の課題で「入力した文字が、1月1日から数えて何月の何日であるか」を出力する課題が出ました。
例えば、1月1日から85日目の場合は、85-days[0]→54-days[1]という風に3月26日になり、mnt[2]のMarを表示するという考え方は理解できるのですが、プログラムがあまりよく分かりません。
アドバイス等いただけたら幸いです。m(_ _)m
c
1#include <stdio.h> 2 3int main() 4{ 5 char *p_mnt[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","sep","Oct","Nov","Dec"}; 6 int days[] = {31,28,31,30,31,30,31,31,30,31,30,31}; 7 int date; 8 9 printf("1月1日からの日数を入力してください:"); 10 scanf("%d",&date); 11 12 if (date<1 || date>365){ 13 printf("\n正しい日付を入力してください"); 14 } else { 15 printf("\n%d日目は、%sの%s日です。\n",date,p_mnt[date - days[1]]); 16 } 17}
<出力結果>
1月1日からのに数を入力してください:
200日目は、(null)の(null)です。
[推奨していない質問] https://teratail.com/help/avoid-asking
> 何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
ていうか、高校の課題なら何故先生に聞かないの?
申し訳ありません。
自分のクラスの担任は聞いても、アドバイスをいただけません(課題に限り)。
また、この課題が完成できていないと大幅原点となるため質問してしまいました。
以後はなるべくこのような質問はしないで生きたいです。
授業をろくに聞かずネットで解決しようというのは減点が正しい評価だと思う。
> 考え方は理解できるのですが、プログラムがあまりよく分かりません。
この、「あまりよく」の部分をご自分でどこまで掘り下げられるか、です。
そして、掘り下げられていないと「何が分からないのか」が他人には分からないので、結局全部書いて見せる=カンニング状態となってしまい、アドバイスになりません。
「飛行機が何故飛べるのかは分かるけれど紙飛行機は作れない」としたら何故なのか…紙の折り方(山折り谷折り)が分からない? 紙の折り順が分からない? 折り方を説明した文章・図(の一部)が読めない? ・・・さて、何故でしょうか。
いくつもの回答をいただいている状況で質問者さん本人のコメントがぱったりなので分かりませんが、「考え方は(なんとなく)分かる」けど、「具体的なC言語のコード」は自力ではまったく思い浮かばないということではないかな、と。提示のコードは、実は問題文としてもともと書かれていたものではありませんか。これを元に追加、修正せよ、という課題とか。