永发信息网

c语言初学者的一个程序问题

答案:4  悬赏:0  手机版
解决时间 2021-04-29 11:35
  • 提问者网友:两耳就是菩提
  • 2021-04-28 15:00

#include <stdio.h>
void main()
{
int year,m,date,c=0;
for(scanf("%4d%2d%2d",&year,&m,&date);m>1;m--)
{
(m-1==4||m-1==6||m-1==9||m-1==11)?c+=c:(m==2)?((year%4==0&&year%100!=0||year%400==0)?c+=29:c+=28):c+=31;
}
printf("%d\n",c=c+date);
}

最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-04-28 16:31

1. 有加减乘除运算的话,需要加上 math.h


2. 这题的运算结果有误,我输入2002 12 31 显示的是结果是679



#include <stdio.h>
#include <math.h>
void main()
{
int year,m,date,c=0;
for(scanf("%4d%2d%2d",&year,&m,&date);m>1;m--)
{
(m-1==4||m-1==6||m-1==9||m-1==11)?c+=30:(m-1==2)?((year%4==0&&year%100!=0||year%400==0)?c+=29:c+=28):c+=31; //4,6,9,11月的日子是30天,m-1 == 2 才是2月的,不然输入3月的日子可能就不对了
}
printf("%d\n",c=c+date);
}



具体问题具体对待,这个程序得运行是没有问题的,要看报出的是什么错,可能是环境没有搭好

全部回答
  • 1楼网友:走死在岁月里
  • 2021-04-28 18:17
#include <stdio.h> void main() { int year,m,date,c=0; scanf("%4d%2d%2d",&year,&m,&date); // 推荐你把这句拿出来 for(;m>1;m--) { (m-1==4||m-1==6||m-1==9||m-1==11)?c+=30:(m-1==2)?((year%4==0&&year%100!=0||year%400==0)?c+=29:c+=28):c+=31; // c+=30才对,m漏了个-1 } printf("%d\n",c=c+date); }
  • 2楼网友:迷人又混蛋
  • 2021-04-28 17:36

printf("%d\n",c=c+date);

scanf("%4d%2d%2d",&year,&m,&date);

vc下面不认识

应该用cin,cout

  • 3楼网友:持酒劝斜阳
  • 2021-04-28 17:30
怪了 我也用VC6编译了 怎么没问题 是不是你VC的库路径没配置好 你把编译报的错发上来看看
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯