|
2010/12/06(Mon) 12:54:35 編集(投稿者) 2010/12/06(Mon) 12:53:26 編集(投稿者)
<pre><pre>■No55534 (ごう さん) に返信 > ■No55489 (まんりな さん) に返信 > これだけでも、「プログラムができないことはない」ので、課題が出されたのかなーとも思ったり。
> # もしかして、今使える技法のみでプログラムを作って言ってるうちに「もっと効率のいい書き方があればいいのに」と気づかせるための課題だったりして。 > そうかもしれません。 一応、ひとつは干支調べができるプログラムをwhich〜case文で作ったのですが、干支の十干十二支の組み合わせが60通りあるので、 それをすべてcaseで打ったら大変長くなってしまっています。 もう少し短くする方法はないかなとは思っているけど、まだ調べる段階ではないです。
今、正しく入力されなかったり、調べた後に、「入力を続けますか?(yes=1,no=2)」でreturnで戻るようにしたいんですが、 勝手になにもせず終了されてしまいます。どうなっているんでしょう? #include <stdio.h> void main(void) { int tosi,amari,ans; printf("干支とは、十干十二支を組み合わせたものことをいいます。六十年で干支は一巡します。\n"); for(tosi;;){ printf("あなたが調べたい年は?\n");//干支調べ scanf("%d",&tosi); amari=(60+(tosi-964))%60; switch(amari){ case 0: printf("%d年は一番目、甲子(きのえ ね)年です。\n",tosi); break; case 1: printf("%d年は二番目、乙丑(きのと うし)年です。\n",tosi); break; case 2: printf("%d年は三番目、丙寅(ひのえ とら)年です。\n",tosi); break; case 3: printf("%d年は四番目、丁卯(ひのと う)年です。\n",tosi); break; case 4: printf("%d年は五番目、戊辰(つちのえ たつ)年です。\n",tosi); break; case 5: printf("%d年は六番目、己巳(つちのと み)年です。\n",tosi); break; case 6: printf("%d年は七番目、庚午(かのえ うま)年です。\n",tosi); break; case 7: printf("%d年は八番目、辛未(かのと ひつじ)年です。\n",tosi); break; case 8: printf("%d年は九番目、壬申(みずのえ さる)年です。\n",tosi); break; case 9: printf("%d年は十番目、癸酉(みずのと とり)年です。\n",tosi); break; case 10: printf("%d年は十一番目、甲戌(きのえ いぬ)年です。\n",tosi); break; case 11: printf("%d年は十二番目、乙(きのと い)亥年です。\n",tosi); break; case 12: printf("%d年は十三番目、丙子(ひのえ ね)年です。\n",tosi); break; case 13: printf("%d年は十四番目、丁丑(ひのと うし)年です。\n",tosi); break; case 14: printf("%d年は十五番目、戊寅(つちのえ とら)年です。\n",tosi); break; case 15: printf("%d年は十六番目、己卯(つちのと う)年です。\n",tosi); break; case 16: printf("%d年は十七番目、庚辰(かのえ たつ)年です。\n",tosi); break; case 17: printf("%d年は十八番目、辛巳(かのと み)年です。\n",tosi); break; case 18: printf("%d年は十九番目、壬午(みずのえ うま)年です。\n",tosi); break; case 19: printf("%d年は二十番目、癸未(みずのと ひつじ)年です。\n",tosi); break; case 20: printf("%d年は二十一番目、甲申(きのえ さる)年です。\n",tosi); break; case 21: printf("%d年は二十二番目、乙酉(きのと とり)年です。\n",tosi); break; case 22: printf("%d年は二十三番目、丙戌(ひのえ いぬ)年です。\n",tosi); break; case 23: printf("%d年は二十四番目、丁亥(ひのと い)年です。\n",tosi); break; case 24: printf("%d年は二十五番目、戊子(つちのえ ね)年です。\n",tosi); break; case 25: printf("%d年は二十六番目、己丑(つちのと うし)年です。\n",tosi); break; case 26: printf("%d年は二十七番目、庚寅(かのえ とら)年です。\n",tosi); break; case 27: printf("%d年は二十八番目、辛卯(かのと う)年です。\n",tosi); break; case 28: printf("%d年は二十九番目、壬辰(みずのえ たつ)年です。\n",tosi); break; case 29: printf("%d年は三十番目、癸巳(みずのと み)年です。\n",tosi); break; case 30: printf("%d年は三十一番目、甲午(きのえ うま)年です。\n",tosi); break; case 31: printf("%d年は三十二番目、乙未(きのと ひつじ)年です。\n",tosi); break; case 32: printf("%d年は三十三番目、丙申(ひのえ さる)年です。\n",tosi); break; case 33: printf("%d年は三十四番目、丁酉(ひのと とり)年です。\n",tosi); break; case 34: printf("%d年は三十五番目、戊戌(つちのえ いぬ)年です。\n",tosi); break; case 35: printf("%d年は三十六番目、己亥(つちのと い)年です。\n",tosi); break; case 36: printf("%d年は三十七番目、庚子(かのえ ね)年です。\n",tosi); break; case 37: printf("%d年は三十八番目、辛丑(かのと うし)年です。\n",tosi); break; case 38: printf("%d年は三十九番目、壬寅(みずのえ とら)年です。\n",tosi); break; case 39: printf("%d年は四十番目、癸卯(みずのと う)年です。\n",tosi); break; case 40: printf("%d年は四十一番目、甲辰(きのえ たつ)年です。\n",tosi); break; case 41: printf("%d年は四十二番目、乙巳(きのと み)年です。\n",tosi); break; case 42: printf("%d年は四十三番目、丙午(ひのえ うま)年です。\n",tosi); break; case 43: printf("%d年は四十四番目、丁未(ひのと ひつじ)年です。\n",tosi); break; case 44: printf("%d年は四十五番目、戊申(つちのえ さる)年です。\n",tosi); break; case 45: printf("%d年は四十六番目、己酉(つちのと とり)年です。\n",tosi); break; case 46: printf("%d年は四十七番目、庚戌(かのえ いぬ)年です。\n",tosi); break; case 47: printf("%d年は四十八番目、辛亥(かのと い)年です。\n",tosi); break; case 48: printf("%d年は四十九番目、壬子(みずのえ ね)年です。\n",tosi); break; case 49: printf("%d年は五十番目、癸丑(みずのと うし)年です。\n",tosi); break; case 50: printf("%d年は五十一番目、甲寅(きのえ とら)年です。\n",tosi); break; case 51: printf("%d年は五十二番目、乙卯(きのと う)年です。\n",tosi); break; case 52: printf("%d年は五十三番目、丙辰(ひのえ たつ)年です。\n",tosi); break; case 53: printf("%d年は五十四番目、丁巳(ひのと み)年です。\n",tosi); break; case 54: printf("%d年は五十五番目、戊午(つちのえ うま)年です。\n",tosi); break; case 55: printf("%d年は五十六番目、己未(つちのと ひつじ)年です。\n",tosi); break; case 56: printf("%d年は五十七番目、庚申(かのえ さる)年です。\n",tosi); break; case 57: printf("%d年は五十八番目、辛酉(かのと とり)年です。\n",tosi); break; case 58: printf("%d年は五十九番目、壬戌(みずのえ いぬ)年です。\n",tosi); break; case 59: printf("%d年は六十番目、癸亥(みずのと い)年です。\n",tosi); break; default: printf("入力が正しくありません。\n"); printf("続けますか?(yes=1,no=2)\n"); scanf("%d",ans); if(ans=1){ printf("入力を続けます。\n"); return; } else(ans=2);{ printf("入力を終了します。\n"); break; } } } }
どこかおかしいですか?</pre></pre>
|