使c++ if语句同时满足两个条件,急急急,加悬赏。

在做一个输入年份、月份,就知道这个月多少天的程序#include<iostream>usingnamespacestd;intmain(){intx,y;cout<<"请... 在做一个输入年份、月份,就知道这个月多少天的程序

#include <iostream>
using namespace std;
int main ()
{
int x,y;
cout<<"请输入年份" <<endl;
cin>>x;
cout<<"您输入的年份是"<<x<<"请输入月份" <<endl;
cin>>y;

if (y==1)cout<<"这个月有31天";
if (y==3)cout<<"这个月有31天";
if (y==5)cout<<"这个月有31天";
if (y==7)cout<<"这个月有31天";
if (y==8)cout<<"这个月有31天";
if (y==10)cout<<"这个月有31天";
if (y==12)cout<<"这个月有31天";
if (y==4)cout<<"这个月有30天";
if (y==6)cout<<"这个月有30天";
if (y==9)cout<<"这个月有30天";
if (y==11) cout<<"这个月有30天";
{

if(y=2)
{
if((x%400==0)||(x%100!=0&&x%4==0))
cout<<"这个月有29天"<<endl;
else
cout<<"这个月有28天"<<endl;
}

system("pause") ;
return 0;
}}

运行后的结果如果y!=2,那么就会出现

这个月31天这个月28天
这样的语句

【【【【如何使if同时满足两个条件,求高手指点~!】】】】
展开
 我来答
轩心之迪
2010-11-20 · TA获得超过726个赞
知道小有建树答主
回答量:76
采纳率:0%
帮助的人:106万
展开全部
你的错误是if(y=2),这是赋值语句,而不是判断语句,应该是if(y==2)。另外你的if语句写的太乱,而且也没必要写得那么多,因为if的条件中可以使用if(条件1 && 条件2 && ...)来同时满足这多个条件,使用if(条件1 || 条件2 ||....)来满足其中的任一个条件,所以你完全可以写成if (y==4||y==6||y==9||y==11)之类的来简化程序。还有就是你的月份范围没有限制,因为月份不能小于1和大于12。if语句之前忽略了这个,而if判断也少了1到12之外的值。写程序要养成良好的写代码的风格。刚才给你改进了一下,写了一个很简单的类似的程序,留下你的邮箱,我发给你,你看看。
cout<<"**********************欢迎使用*********************"<<endl;
cout<<"***************************************************"<<endl;
cout<<"**********************输入1退出********************"<<endl;
cout<<"*********************输入其它使用******************"<<endl;
cout<<"***************************************************"<<endl;

int iShutter;
cin>>iShutter;

while (iShutter!=1)
{
int x,y;

cout<<"请输入年份: ";
cin>>x;
cout<<"您输入的年份是 "<<x;

cout<<"\n请输入月份: ";
cin>>y;
while (y<1||y>12)
{
cout<<"您输入了错误的月份,请重新输入月份:";
cin>>y;
}

cout<<"您输入的月份是 "<<y<<"\n\n";

if (y==1||y==3||y==5||y==7||y==8||y==10||y==12)
{
cout<<x<<" 年 "<<y<<" 月有31天"<<endl;
}
else if (y==4||y==6||y==9||y==11)
{
cout<<x<<" 年 "<<y<<" 月有31天"<<endl;
}
else if (y==2)
{
if((x%400==0)||(x%100!=0&&x%4==0))
cout<<x<<" 年 "<<y<<" 月有29天"<<endl;
else
cout<<x<<" 年 "<<y<<" 月有28天"<<endl;
}

cout<<"\n\n\n\n";
cout<<"**********************欢迎使用*********************"<<endl;
cout<<"***************************************************"<<endl;
cout<<"**********************输入1退出********************"<<endl;
cout<<"*******************输入其它继续使用****************"<<endl;
cout<<"***************************************************"<<endl;

cin>>iShutter;
}

cout<<"********************感谢您的使用*******************"<<endl;
cout<<"**********************再见!***********************"<<endl;
cout<<"\n\n\n\n";

return 0;
桂纶美
推荐于2017-11-23 · TA获得超过1973个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:277万
展开全部
===============================================================
楼主意思就是输出不正确
首先楼主你不小心写错一个地方
if(y=2) //这里错了 改成y==2
{
if((x%400==0)||(x%100!=0&&x%4==0))
cout<<"这个月有29天"<<endl;
else
cout<<"这个月有28天"<<endl;
}

if同时满足两个条件 if(条件1&&条件2)
if同时只用满足一个 if(条件1||条件2)
==============================================================
程序可以稍微写清楚点:

#include <iostream>
using namespace std;
int main ()
{
int x,y;
cout<<"请输入年份" <<endl;
cin>>x;
cout<<"您输入的年份是"<<x<<"请输入月份" <<endl;
cin>>y;

if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)
cout<<"这个月有31天";
else if(y==2)
{
if((x%400==0)||(x%100!=0&&x%4==0))
cout<<"这个月有29天"<<endl;
else
cout<<"这个月有28天"<<endl;
}
else
cout<<"这个月有30天"<<endl;

system("pause") ;
return 0;
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhengyuhong520
2010-11-19 · TA获得超过1157个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:498万
展开全部
例如:需要满足a>=1,且b<=5就这样写if(a>=1&&b<=5)
那个&&你就用"而且"来理解吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友320ffd874a
2010-11-19 · TA获得超过314个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:105万
展开全部
if(条件1 && 条件2)
&&表示and的意思!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z2665
2010-11-19 · TA获得超过781个赞
知道小有建树答主
回答量:1065
采纳率:0%
帮助的人:731万
展开全部
if(y=2)应该是 if(y==2)吧- -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式