前提・実現したいこと
C言語初心者です。以下のような問題に取り組んでいます。
いつでも構いませんので、都合のいい時にお願いします。
【要求】
1から100までの整数二つを入力して、出力します。
ただし0または100以上、小数、文字列を入力した場合エラーメッセージがでる。
【現状】
コンパイルは通りましたが、
実行した際に期待通りの動作になりません。
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
1.両方とも正しく入力した場合
数値1=36
数値2=25
......
で入力が続いて、結果処理ができない。
2.
エラーが出るように入力した場合は以下のような結果がでます。
数値1=sdfsdfsd
数値2=エラーです、1から100までの整数を再入力してください
該当のソースコード
C言語
#include <stdio.h>
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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。