2016-10-20 6 views
0

「1234」と入力すると、そこに数字「1」があるため、拒否するようにコードする必要があります。Do .. whileループ:入力(int)に数字「1」または「0」が含まれないようにするにはどうすればよいですか?

+0

「n」はどのようなタイプですか? 「拒否」とはどういう意味ですか? –

+0

これはコード作成サービスではなく、無数の良い本やチュートリアルを複製するものでもありません。あなたは本やチュートリアルを読んで、それを試してみて、あなたの最善の試みが失敗したときにここに来るはずです。それでは、これまでにあなたの最高の試みを投稿し、質問をしてください。 – nvoigt

+3

'int'ではなく' string'を読むことを検討してください。 – BoBTFish

答えて

1

1つの方法は、ユーザからstd::stringを入力し、std::string::findを使用して0または1が存在するかどうかを確認することです。入力が終わったら、文字列を整数に変換してみてください。あなたは「数値」のすべてを維持したい場合は

あるいは、あなたは常に右端の桁を抽出するために% 10を使用することができます。その数字を削除するには

n /= 10

続く

if (n % 10 < 2){ 
    /*not allowed: I'm assuming n is positive here*/ 
} 

、あなたがゼロになるまで繰り返す。明らかに0から始まるnの特殊ケースを個別にテストする必要があります。

+0

do whileループを使う必要があります。私はまだiのキーが1または0の数字を持つ場合、コンパイラを拒否することはできません。 ' { cout << "正の整数を入力してください。 cin >> n; } while(n/10 <2); ' – Elyssehui

+0

}} while(n/10 <2); 'intに数字の1または0がある場合にコンパイラが拒否する必要がある場合、この文をどのように変更する必要がありますか? – Elyssehui

+0

私を許してください。しかし、あなたは私が想定していたよりも初心者だと思います。 K&R「The C Programming Language」の最初の章を読むことをお勧めしますか?これはC++に関連しており、最初の章ではすべての基本を明らかにしています。 – Bathsheba

関連する問題