大佬帮忙看一下,这个if判定为什么只能执行第一条

qq_42786270 2018-07-24 09:03:29
#include <iostream>
using namespace std;
int main() {
cout<<"计算圆的周长请按1"<<endl;
cout<<"计算圆的面积请按2"<<endl;
double a;
double pai=3.14;
cin>>a;
if(a=1)
{
cout<<"请输入半径:";
double r;
cin>>r;
cout<<"圆的周长为:"<<pai*r*2;
}
else if(a=2)
{
cout<<"请输入半径:";
double x;
cin>>x;
cout<<"圆的面积为:"<<pai*x*x;
}
else
cout<<"请重新输入选项";
return 0;

}



想做一个关于面积的运算器,但是if判定只能执行第一句,哪位大佬看一下什么问题
(我需要知道逻辑哪里出错了,不要直接扔给我一串代码,谢谢)
...全文
231 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
636f6c696e 2018-07-25
  • 打赏
  • 举报
回复
引用 2 楼 qq_42786270 的回复:
赋值用等于,取值用恒等?

重新看下运算符基础吧,=是赋值,==是判断
a=1是把1赋值给a这个变量,执行后a必然为1
a==1是判断a是否等于1,执行后a的值不变
陆人葭 2018-07-25
  • 打赏
  • 举报
回复
以后这么写

if (2 == a)
{
}
sizyx 2018-07-25
  • 打赏
  • 举报
回复
上面的的大神们已经指出了问题了
lee_pupil 2018-07-24
  • 打赏
  • 举报
回复
a = 1 是赋值哦, a == 1才是判定条件
qq_42786270 2018-07-24
  • 打赏
  • 举报
回复

cout<<"请输入数字:";
double x;
cin>>x;
double y;
if(y*y==x){
cout<<"此数字的算术平方根为:"<<y;
qq_42786270 2018-07-24
  • 打赏
  • 举报
回复
赋值用等于,取值用恒等?
636f6c696e 2018-07-24
  • 打赏
  • 举报
回复
a=1->a==1
a=1是赋值,始终会TRUE

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧