| ■No55560 (shu さん) に返信 > 2010/12/06(Mon) 13:52:18 編集(投稿者) > > ■No55559 (まんりな さん) に返信 > > 編集したのですが遅かったようで、 >>if(ans=1) { > if(ans==1) { > のように=を2にして下さい。 > > > > #include <stdio.h> > void main(void) > { > int tosi,amari,ans; > printf("干支とは、十干十二支を組み合わせたものことをいいます。六十年で干支は一巡します。\n"); > for(ans=1;ans==1;) { > 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 59: > printf("%d年は六十番目、癸亥(みずのと い)年です。\n",tosi); > break; > default: > printf("入力が正しくありません。\n"); > break; > } > } > printf("続けますか?(yes=1,no=2)\n"); > scanf("%d",&ans); <--- &抜けてます > printf("Debug:ans = %d\n", ans); <--- デバッグ用 > if(ans==1){ > printf("入力を続けます。\n"); > } else { > printf("入力を終了します。\n"); > } > } > } >
これやると、「あなたの調べたい年は?」が無限ループで続いてしまいます。 |