私のdo-whileループは動作していませんし、なぜ私は考えていません。私がしたいdo-whileループは、別の番号を入力したいときにユーザーがプログラムを再実行する必要性を軽減することだけでした。Do Whileループが機能していませんか?私のプログラムで
-3
A
答えて
-1
これを試してみてください:
#include<iostream>
#include<string>
double tester;
using namespace std;
void stoupper (std::string& s)
{
std::string::iterator i = s.begin();
std::string::iterator end = s.end();
while (i != end) {
*i = std::toupper((unsigned char)*i);
++i;
}
}
double squarerootfinder (double number, double divisor){
tester = (number/(divisor * divisor));
if (divisor == 1) {
return 1;
}
else {
if (tester != (int)tester) divisor = squarerootfinder(number, divisor - 1);
}
return divisor;
}
int main() {
string runagain;
double number, divisor, squareroot, insidepart;
do {
cout << "Enter a whole number to find the square root of it \n";
cin >> number;
divisor = number;
squareroot = squarerootfinder(number, divisor);
insidepart = number/(squareroot * squareroot);
if (insidepart != 1) {
cout << squareroot << (char)251 << insidepart;
cout << endl;
}
else {
cout << squareroot << endl;
}
cout << "written by Arpan Gupta! \n";
cout << "Enter run again to run the program again. \n";
cin >> runagain;
stoupper(runagain);
} while (runagain == "RUN AGAIN");
return 0;
}
アイデアは、それがすべて大文字/小文字かであるかどうかを試してみて、関係なく、ユーザが入力(「再実行」のいずれかの変化をチェックすることですあなたの問題がどこにあるのでしょうか...)
OK、あなたのコードをちょっと整理しました。:-)
編集:そして、いいえ、あなたのdo { } while()
ループ内にrunagain
を再宣告する理由は絶対にありません。
1
メインループでstring runagain;
を2回宣言する必要はありません。またdouble tester
は、プログラム内の他の場所では使用しないので、squarerootfinder
で宣言する必要があります。
cin
は、空白を無視して、代わりにgetline関数を調べる必要があります。このlinkには、その使用方法の例が示されています。 cin
を使用すると、問題の原因になります。これをテストするには、次の行を追加するだけです。
cout<<runagain;
cin>>runagain;
の直後です。このコードで
:divisor
とnumber
は、すべての後に等しいので
cout << "Enter a whole number to find the square root of it \n";
cin >> number;
squareroot = squarerootfinder(number, number);
:
cout << "Enter a whole number to find the square root of it \n";
cin >> number;
divisor = number;
squareroot = squarerootfinder(number, divisor);
あなたはsquarerootfinder
を呼び出す代わりに、ちょうどこのようにそれをしない理由除数を使用しての、その後divisor=number;
を設定します。
関連する問題
- 1. do/whileループが機能しない
- 2. Do-whileループはユーザー入力を待っていませんか?
- 3. vba do whileループは終了ループを終了しません
- 4. C do-whileループ
- 5. Do-Whileループが途中で終了しています
- 6. ループが私の機能ボタンを認識しないwhileボタン
- 7. Cではどのループが速いのですか? whileループまたはdo-whileループ
- 8. Javascript "For"ループが機能していませんか?
- 9. C#Do whileループ問題
- 10. head/tailsゲームjavascript do/whileループ
- 11. 私はdo whileループ中に問題があります
- 12. withing do ... whileループから値を配列にプッシュできません
- 13. がdo-whileループで継続使用して
- 14. whileループが動作しません
- 15. whileループは機能付きですか?
- 16. ループは機能しませんか?
- 17. Java:スレッド内のThread.sleep()whileループが機能しない
- 18. Do WhileループのガイダンスがPSでNULLになるまで
- 19. whileループは停止しますが、whileループは停止しません
- 20. Python Whileループで、(&)演算子が機能しない
- 21. do whileループで適切なループが発生する問題 - Java
- 22. このJavaプログラムでdo-whileループが期待通りに動作しないのはなぜですか?
- 23. Jクエリのクリック機能が機能していませんか?
- 24. 外部キーがプライマリキーと等しい場合はwhileループとDo whileループを実行します
- 25. なぜdo-whileループが無限にあるのですか?
- 26. exec()を含むdo whileループから出てこない
- 27. KornShell(ksh)にはDo ... Whileループがありますか?
- 28. do-whileループでarray_randが再び実行されない
- 29. 私のphaseListenerが機能しません
- 30. ループがループしていませんか?
どうしたのですか?それはコンパイルされていませんか?あなたが期待していることをしていないのですか? –
それは宿題なので、私はあなたにいくつかのヒントを与えます。ループ内に2番目のrunagain文字列を宣言しないでください。上記で宣言したものは問題ありません。 「もう一度実行」を入力した後に、文字列に含まれるものを印刷してみてください。 cinは空白で止まることに気付くでしょう。代わりにgetlineを見てください。 –
ユーザが 'RUN again'を入力するとどうなりますか? –