为了账号安全,请及时绑定邮箱和手机立即绑定

我的程序差一个问题编译不出来,谁能帮我看看为啥不能编译啊?

我的程序差一个问题编译不出来,谁能帮我看看为啥不能编译啊?

C
是慕粉啊 2017-10-04 20:00:51
#include <stdio.h>int main(){ int year=2008; int month=8; int day=8; int date; if(year%4=0) { date==month*30+1+day; printf(是该年中的第"%d"天,date); } else { date==month*30+day; printf(是该年中的第"%d"天,date); } return 0;}
查看完整描述

5 回答

已采纳
?
qq_野火燎原_1

TA贡献10条经验 获得超17个赞

条件判断中要用“==”,如if;

而在代码中要想赋值用一个等号就行;

用printf时要打出的文字要以这样的形式(“******* ”);

而且你这代码风格不太好;

要注意缩进!!!



查看完整回答
4 反对 回复 2017-10-04
?
AYZXX

TA贡献2条经验 获得超0个赞

if里面判断应该是两个等号,赋值时是应该是一个等号,

查看完整回答
反对 回复 2017-10-05
?
qq_野火燎原_1

TA贡献10条经验 获得超17个赞

别忘了采纳

查看完整回答
反对 回复 2017-10-04
?
onemoo

TA贡献883条经验 获得超454个赞

你这里的编译错误并不是两个等号的问题。虽然写两个等号似乎并不符合你的意图,但至少符合语法,所以不会编译报错。


你这里的错误是 printf(是该年中的第"%d"天,date);

printf 的第一个参数是字符串,也就是说第一个逗号前的部分都要放在双引号中,而不是仅仅把 %d 放入引号中。


另外,你这代码逻辑似乎不能计算出天数啊。

查看完整回答
反对 回复 2017-10-04
  • 是慕粉啊
    是慕粉啊
    我把双引号改了,=也改了,还是不行,我看不出来哪里有问题,能指导一下吗?
  • onemoo
    onemoo
    你混淆了 = 和 ==。所以这个代码中的等于号问题不仅是date后面的那些,还有 year%4=0 这里。按照你的意思,这里应该是判断相等,所以应该用==。 你用了=是赋值的意思,而这里等号左侧不是左值,不允许赋值,所以编译报错。 另外就像我前面和你说过的,你这个代码逻辑计算不出正确的天数。
  • 是慕粉啊
    是慕粉啊
    好的,谢谢~
?
ELLIOT4038596

TA贡献5条经验 获得超1个赞

 =是赋值== 是判断左右边的值是否相等   你把10和 15行两个 == 改成=号再试试

查看完整回答
反对 回复 2017-10-04
?
慕瓜7258869

TA贡献1条经验 获得超0个赞

为什么总两个等号?

查看完整回答
反对 回复 2017-10-04
  • 5 回答
  • 0 关注
  • 2368 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信