前提・実現したいこと
C言語の勉強を始めたのですが、この問題で詰まってしまいました。
6桁の数字を受け取って、年と月を打ち込むと、元号で表した年と季節(春:35月, 夏: 68月、秋: 911月、冬:122月)を表示するプログラムを作りなさい。昭和以前の元号には対応しなくても良い。
例、201812→平成30年冬、201903→平成31年春
201908→令和元年夏、202110→令和3年秋
プログラミング初心者なので、ifの中にarray[6]の配列を前の4つは年号の判定に使う、後ろの2つは季節の判定に使うということをしたのですが、うまくいきません。
発生している問題・エラーメッセージ
結果が、
春
夏
秋
冬
春
夏
秋
冬
となってしまいます。
### 該当のソースコード #include <stdio.h> void main() { int a[6]={}; printf("6桁の数字を入力して下さい。 "); scanf("%d",&a); if(a[0,1,2,3] >= 1927 && a[0,1,2,3] <=1989 && 03 <= a[4,5] && a[4,5]<= 05) //昭和が西暦何年から何年までかを指定。元年の次の年から printf("昭和%d年。春\n",64-(1989-a[0,1,2,3])); if(a[0,1,2,3] >= 1927 && a[0,1,2,3] <=1989 && 06 <= a[4,5] && a[4,5]<= 8) printf("昭和%d年。夏\n",64-(1989-a[0,1,2,3])); if(a[0,1,2,3] >= 1927 && a[0,1,2,3] <=1989 && 9 <= a[4,5] && a[4,5]<= 11) printf("昭和%d年。秋\n",64-(1989-a[0,1,2,3])); if(a[0,1,2,3] >= 1927 && a[0,1,2,3] <=1989 && 12 <= a[4,5] && a[4,5]<= 02) printf("昭和%d年。冬\n",64-(1989-a[0,1,2,3])); else if(a[0,1,2,3] == 1926 && 03 <= a[4,5]<= 05) //年号の始まりは元年と表示 printf("昭和元年です。春|n"); else if(a[0,1,2,3] == 1926 && 06 <= a[4,5]<= 8) //年号の始まりは元年と表示 printf("昭和元年です。夏|n"); else if(a[0,1,2,3] == 1926 && 9 <= a[4,5]<= 11) //年号の始まりは元年と表示 printf("昭和元年です。秋|n"); else if(a[0,1,2,3] == 1926 && 12 <= a[4,5]<= 02) //年号の始まりは元年と表示 printf("昭和元年です。冬|n"); if(a[0,1,2,3] >= 1990 && a <=2010) //平成が西暦何年から何年までかを指定。元年の次の年から printf("平成%d年です。",22-(2010-a[0,1,2,3])); if (03 <= a[4,5]<= 05) printf("春\n"); if (06 <= a[4,5] <= 8) printf("夏\n"); if (9 <= a[4,5] <= 11) printf("秋\n"); if ( 12 <= a[4,5] <= 02) printf("冬\n"); else if(a == 1989) //年号の始まりは元年と表示 printf("平成元年です。"); if (03 <= a[4,5]<= 05) printf("春\n"); if (06 <= a[4,5] <= 8) printf("夏\n"); if (9 <= a[4,5] <= 11) printf("秋\n"); if ( 12 <= a[4,5] <= 02) printf("冬\n"); } ```ここに言語名を入力 C言語 ### 試したこと 上記のもの以外にも、試したのですが、うまくいきません。おそらく、arrayの考え方が間違っているのだと思い、質問させていただきました。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答5件
あなたの回答
tips
プレビュー