私の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. なぜdo-whileループは機能しないのですか?
- 4. Do while while document.writeは機能しません(JavaScript)
- 5. do ... whileループは私が欲しいものを表示していません
- 6. Do-whileループが正しく実行されていません
- 7. 私のjqueryは私のPHP whileループでは機能していません
- 8. whileループは機能しません
- 9. Do-whileループはユーザー入力を待っていませんか?
- 10. whileループ内でtkinterダイアログウィンドウが機能しません。
- 11. なぜこのdo-whileループは動作しませんか?
- 12. vba do whileループは終了ループを終了しません
- 13. Do-whileループはJavaのwhileに注意を払っていません
- 14. 終了プログラムdo-whileループin java
- 15. do-whileとdo-untilループを見つけることができません
- 16. whileループのインクリメントは機能しませんか?
- 17. Do Whileループでストリームリーダー?
- 18. cのdo-whileまたはscanf()が機能しない
- 19. do-whileループはC言語で終了しません
- 20. C do-whileループ
- 21. C++ do-whileループ
- 22. Linux bashコードがwhile-doループで実行されていません
- 23. do whileループが正しくループしていない&C++
- 24. vba whileループが機能しない - アクセスフォーム
- 25. Scala Do Whileループが終了しない
- 26. Do-Whileループが途中で終了しています
- 27. whileループはtkinterアニメーションでは機能しません
- 28. ブールループはwhileループでは機能しません
- 29. モーダルはwhileループでは機能しません
- 30. forループ内のDo-whileループ
どうしたのですか?それはコンパイルされていませんか?あなたが期待していることをしていないのですか? –
それは宿題なので、私はあなたにいくつかのヒントを与えます。ループ内に2番目のrunagain文字列を宣言しないでください。上記で宣言したものは問題ありません。 「もう一度実行」を入力した後に、文字列に含まれるものを印刷してみてください。 cinは空白で止まることに気付くでしょう。代わりにgetlineを見てください。 –
ユーザが 'RUN again'を入力するとどうなりますか? –