明媚的慎独 发表于 2016-7-9 18:12:21

C++小问题求助

程序要求:编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入Y或N。若输入为Y,显示“现在正在下雨。”,N,则显示“现在没有下雨。”;否则继续提问“现在正在下雨吗?”。下面是我写的代码:
#include<iostream>
using namespace std;

int main()
{
        char answer;
        int i=1;
        while(i>0)
        {
                cout<<"现在正在下雨吗?"<<endl;
                cout<<"Please enter \'Y\' or \'N\'"<<endl;
                cin>>answer;
       
                if(answer='Y')
                {
                        cout<<"现在正在下雨。"<<endl;
                        break;
                }
                else
                {
                        if(answer='N')
                        {
                                cout<<"现在没有下雨。"<<endl;
                                break;
                        }
                }
                i++;
        }
        return 0;
}
我觉得没什么问题了,可是我运行的结果是,无论我输入的是什么字母,它都显示“现在正在下雨。”,我是一个刚开始学C++的小菜鸟,问题可能有些弱智,但还是希望各位大神多多帮助。{:5_111:}

zzk176 发表于 2016-7-9 18:33:04

判断等于要用两个等号"==" , 一个等号是赋值

无符号整形 发表于 2016-7-9 18:39:54

=是赋值,==才是比较
你的
                if(answer='Y')
               {
                         cout<<"现在正在下雨。"<<endl;
                         break;
               }
               else
               {
                         if(answer='N')
                         {
                                 cout<<"现在没有下雨。"<<endl;
                                 break;
                         }
这里,if(answer='Y')就是把Y赋给answer然后比较answer和'Y'所以一定是正在下雨

明媚的慎独 发表于 2016-7-9 22:47:07

无符号整形 发表于 2016-7-9 18:39
=是赋值,==才是比较
你的
               


谢谢啦

明媚的慎独 发表于 2016-7-9 22:47:44

zzk176 发表于 2016-7-9 18:33
判断等于要用两个等号"==" , 一个等号是赋值

收到,谢谢

xiaomixixi 发表于 2016-7-13 22:12:13

if语句里很容易出现这个问题,加油啦

明媚的慎独 发表于 2016-7-14 18:03:53

xiaomixixi 发表于 2016-7-13 22:12
if语句里很容易出现这个问题,加油啦

嗯呢,谢谢
页: [1]
查看完整版本: C++小问题求助