C语言出错,错误提示:error C2106: '=' : left operand must be l-value

以下是程序,检查了N次都不知道怎么改啊。#include<stdio.h>intmain(){intyear,month,days;days=0;printf("输入年号... 以下是程序,检查了N次都不知道怎么改啊。

#include <stdio.h>
int main()
{
int year,month,days;
days=0;
printf("输入年号和月号:\n");
scanf("%d,%d",&year,&month);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: days=31; break;
case 4:
case 6:
case 9:
case 11: days=30; break;
case 2:
if((year%4=0 && year%100!=0)||(year%400=0)) days=29;
else days=28; break;
default:printf("Error\n");
}
printf("%d年%d月有%d天\n",year,month,days);
return 0;
}
展开
 我来答
风若远去何人留
推荐于2018-02-23 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部

这是一条典型的VC/VS的出错信息。 

一、错误信息解析:

1、error,表示这是一条出错信息。 C语言信息一般有error(出错)和warning(警告)两种。 error是编译器遇到了致命错误,无法继续进行编译,必须修改。 warning是C语言编译器找到了一个可能非法的位置,但不影响编译,程序还能运行,有可能运行出错,也可能不影响。 

error必须修改,而部分warning可以不做修改。

2、C2106: 这个是VC/VS自行定义的一个错误编号。每种错误编号代表一种错误类型,有着对应的具体提示。

3、'=' : left operand must be l-value。这个就是具体的出错信息提示了。也是最有用的一部分。 这句表示=的左值必须是可赋值的左值。

二、出错原因。

出现这一提示,一般是赋值运算(=)左值为表达式。 

比如

int a;
a++=1;

左值a++为一个表达式。 

或者

int a,b,c;
a=b+c=2;

这样的。

还有可能是判断 ==被打错成了=,比如

if(a+b == c)

被打错成

if(a+b=c)

总之要查对应的赋值运算=左边部分。 必须是合法的变量,不能是表达式。 

三、修改方法。

可以双击出错讯息,会自动定位到出错行。 然后针对出错行代码,检查=的左侧。

御坂妹妹15842
2015-01-26 · TA获得超过326个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:225万
展开全部
if((year%4=0 && year%100!=0)||(year%400=0)) days=29;

(year%4=0)这句是错的,year%4是右值不能被赋值,你应该是想写==0吧。
还有后面的year%400=0也是。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丑宁漫半烟
2020-01-30 · TA获得超过3619个赞
知道大有可为答主
回答量:3021
采纳率:24%
帮助的人:194万
展开全部
第34行少了一个分号。
sort2函数定义里面变量n,数组x都没有申明,不知道哪里来的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongmeteor
2015-01-26 · TA获得超过235个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:172万
展开全部
if((year%4=0 && year%100!=0)||(year%400=0)) days=29;

这句。这是判断的,不是赋值的 要用if((year%4==0 && year%100!=0)||(year%400==0)) days=29;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不酴釄的山茶
2015-01-26 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:55.1万
展开全部
if((year%4==0 && year%100!=0)||(year%400==0)) days=29;判断条件请用== c中=是赋值语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式