flagで場合分けしましたが、実行するとアイコ後に0,1,2,3以外の値を入力した処理で掛け声がじゃんけんぽん あいこでしょとなります。対処方法をご教授ください。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int hand_com,hand_YOU,flag;
srand(time(NULL));
printf("*** じゃんけんします***\nじゃんけんぽん!");
flag=0;
for(;;)
{
rand();
hand_com = (rand()%3+1);
printf("(1:グー、2:チョキ、3:パー、0:終了 ):");
scanf("%d",&hand_YOU);
if(hand_YOU<0||hand_YOU>0){
switch (hand_YOU) {
case 1:
printf("YOU:グー\n");
break;
case 2:
printf("YOU:チョキ\n");
break;
case 3:
printf("YOU:パー\n");
break;
default:
printf("グー・チョキ・パーを出して下さい。\nじゃんけんぽん!");
if(flag==1){printf("あいこでしょ\n");}
else if(flag==0){printf("じゃんけんぽん!\n");}
flag=0;
continue;
}
switch (hand_com) {
case 1:
printf("COM:グー\n");
break;
case 2:
printf("COM:チョキ\n");
break;
case 3:
printf("COM:パー\n");
break;
}
if(hand_YOU==hand_com) {
printf("あいこでしょ!"); flag=1;
continue;
} else if((hand_YOU==1&&hand_com==2)||(hand_YOU==2&&hand_com==3)||(hand_YOU==3&&hand_com==1)) {
printf("あなたの勝ち!\n");
} else if((hand_YOU==2&&hand_com==1)||(hand_YOU==3&&hand_com==2)||(hand_YOU==1&&hand_com==3)) {
printf("あなたの負け!\n");
}
}
printf("***終了***");
return(0);
}
}