注册 登录
编程论坛 C++教室

求助 if嵌套问题和布尔型问题

书中叶 发布于 2010-08-05 23:23, 581 次点击
我是C++初学者,我编了一个程序,是判断输入的两个数的大小的,为什么我运行后,无论输入2  5,还是输入5  2,或者是2  2,结果都是“两个一般大”?
程序代码:
#include<iostream>
int main()
{
     std::cout<<"请输入两个数:"<<std::endl;
     int v1,v2,small,big;
     bool equl=false;
     std::cout<<"初始值"<<equl<<std::endl;//显示验证equl的初始值
     std::cin>>v1>>v2;
     if(v1=v2)
     {
         equl=true;
     }
     else
     {
         equl=false;
         if(v1<v2)
         {
             small=v1;
             big=v2;
         }
         else
         {
             small=v2;
             big=v1;
         }
     }
     std::cout<<"最终值"<<equl<<std::endl;//显示查看equl的最终值
     if(equl=true)
     {
         std::cout<<"两个一般大"<<std::endl;
     }
     else
     {
         std::cout<<big<<""<<small<<""<<std::endl;
     }
     return 0;
}


第一个equl值是0
可第二个equl值就变成了1
诚心请C++高手赐教
3 回复
#2
logicgg2010-08-05 23:34
判断有问题,改成这样就OK了!
#include<iostream>
int main()
{
     std::cout<<"请输入两个数:"<<std::endl;
     int v1,v2,small,big;
     bool equl=false;
     std::cout<<"初始值"<<equl<<std::endl;//显示验证equl的初始值
     std::cin>>v1>>v2;
     if(v1==v2)
     {
         equl=true;
     }
     else
     {
         equl=false;
         if(v1<v2)
         {
             small=v1;
             big=v2;
         }
         else
         {
             small=v2;
             big=v1;
         }
     }
     std::cout<<"最终值"<<equl<<std::endl;//显示查看equl的最终值
     if(equl==true)
     {
         std::cout<<"两个一般大"<<std::endl;
     }
     else
     {
         std::cout<<big<<"比"<<small<<"大"<<std::endl;
     }
   
     return 0;
}
#3
书中叶2010-08-05 23:35
哦,明白了,C++中用 == 表示判断相等啊,谢谢你
#4
vfdff2010-08-06 00:34
小心点就可以饿
1