1

(コードを編集した後)何が起こるかは、複数の単語を入力するたびに痙攣します。修正はありますか?ありがとう。何も知らないようでしたらすみません。高価な本と、オンラインでチュートリアルを読ませてくれる人がいません。(編集したコードは以下です。)

#include <iostream>
#include <string>
using namespace std;

string qu;

int y;

int main()
{
y = 1;
while (y == 1)
{
    cout << "Welcome to the magic 8-ball application." <<"\nAsk a yes or no question, and the 8-ball will answer." << "\n";
    cin >> qu;
    cout << "\nProccessing...\nProccessing...\nProccessing...";
    cout << "The answer is...: ";
    int ans = (int)(rand() % 6) + 1;
    if (ans == 1)
        cout << "Probably not.";
    if (ans == 2)
        cout << "There's a chance.";
    if (ans == 3)
        cout << "I don't think so.";
    if (ans == 4)
        cout << "Totally!";
    if (ans == 5)
        cout << "Not a chance!";
    if (ans == 6)
        cout << "75% chance.";
    system("CLS");
    cout << "\nWant me to answer another question?" << "(1 = yes, 2 = no.)";
    cin >> y;
    }

return 0;

}
4

2 に答える 2

5
 while (y = 1);

する必要があります

 while (y == 1)

余分;にあるので、使用する必要があります==

于 2013-06-01T19:44:00.010 に答える
0

ここに無限ループがあります:

while (y = 1);

を削除し;ます。またy == 1、そうではありませんy = 1


今後これらのエラーを回避するには:

1)この方法で逆比較:

while (1 == y)

=の代わりに入力すると、が無効な==ため、コードはコンパイルされません。1 = y

ただし、ほとんどのコンパイラは、条件付きで代入を行うと警告します。コンパイラの警告を無視しないでください。

2) 同じ行に左中括弧を置きます:

while (1 == y) {
// ...... some code
}

;行末を入力しても、コードは正しいままです。

while (1 == y) {;
// ...... some code
}
于 2013-06-01T19:56:30.353 に答える