質問: main() { int n1, n2; float f; char ss; printf("数値1="); scanf("%d",&n1); printf("数値2="); scanf("%d",&n2); if(n1<1 || n1>100){ printf("エラーです、1から100までの整数を再入力してください"); } else if(n2<1 || n2>100){ printf("エラーです、1から100までの整数を再入力してください"); } else if(scanf("%f"),&f){ printf("エラーです、1から100までの整数を再入力してください"); } else if(scanf("%s",&ss)){ printf("エラーです、1から100までの整数を再入力してください"); } else{ printf("数値1は=%d\n",n1); printf("数値2は=%d\n",n2); } } ### 試したこと 数値1を正しく入力して、数値2をエラーが出るように入力した場合は期待通りの動作になります。 数値1を100以上の整数を入力した場合、エラーメッセージが出さずに数値2の入力に進み、数値2の入力が終わったらエラーメッセージが出る。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 要求されている入力は2個だと思いますが,コードにはscanfがたくさんあります. 2個目の数値を無事に入力した後で,次の(存在理由が不明な)scanfの入力待ちになっていると思われます.