2014-01-02 3 views
0

Предположим, что я должен вывести программу, в которой, когда я вхожу, да, она должна отображать повторную попытку, и если я не укажу, то он должен сказать спасибо. Я сделал такую ​​программу, пожалуйста, помогите мне в изменениях в этой программе, потому что она не работаетИспользование строки для вывода конкретных ответов

#include<iostream> 
#include<string> 
using namespace std; 
int main() 
{ 
    string x; 
    x="yes"||"no"; 
    while(x!="0") 
{ 
    cout<<"Please enter your choice= "<< x << endl; 
    cin>>x; 
if (x="yes") 
    {cout<< "Please enter again";} 
else if (x="no") 
    {cout<< "Thankyou";} 
} 
return 0; 
} 

ответ

0

Ваш код должен прочитать:

#include<iostream> 
#include<string> 

using namespace std; 

int main() 
{ 
    string x; 
    x="yes or no"; 
    while(true) 
    { 
     cout << "Please enter your choice= " << x << endl; 

     cin >> x; 

     if(x == "yes") 
     { 
      cout << "Please enter again"; 
     } 
     else if(x == "no") 
     { 
      cout << "Thank you"; 
      break; 
     } 
    } 

    return 0; 
} 

Единственный = оператор оператор присваивания, в то время как двойной == оператор является ком оператор заготовки. Here - это учебное пособие, в котором объясняются операторы. Кроме того, я думаю, вы написали эту строку: x="yes"||"no";, думая, что это означает x="yes or no";, однако оператор disjunction || используется при объединении условных выражений, таких как if(x == "yes" || x == "no").

1

Есть несколько вопросов здесь:

x="yes"||"no"; 

Это не имеет никакого эффекта в принципе. Вы читаете в x ниже.

Вы должны заменить while(x!="0") на while(true), чтобы получить бесконечный цикл, пока не получите желаемый результат.

Затем x = "yes" и x = "no"присвоить строки. Для сравнения вы хотели использовать ==.

С изменением на while(true) выше, вы должны поместить break; в «нет» -branch, чтобы выйти из цикла.

Смежные вопросы