C语言 急 急 急 题目如图,帮我检查下哪里错了,或者帮我编写一个符合要求的程序,谢谢!!!

#include <stdio.h>
struct DATE
{
int year;
int mouth;
int day;
};

int days(struct DATE date)
{
int day,sum;
if(date.year%4==0&&date.year%100!=0||date.year%400==0)
{
day=29;
}
else
{
day=28;
}
switch(date.month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=31+day;break;
case 4:sum=62+day;break;
case 5:sum=92+day;break;
case 6:sum=123+day;break;
case 7:sum=153+day;break;

第1个回答  2016-11-22
错误的提示是什么呢,不要贴图片,直接上代码追问

追答

结构体里面,有个变量写错了

第2个回答  2016-11-22
你可否把代码附上,这样方便帮你修改啊追问

#include
struct DATE
{
int year;
int mouth;
int day;
};

int days(struct DATE date)
{
int day,sum;
if(date.year%4==0&&date.year%100!=0||date.year%400==0)
{
day=29;
}

追答

那好,我就帮你实现int days(struct DATE date)这个函数吧。

追问

恩恩,谢谢
int main()
{
struct DATE d;
scanf("%d-%d-%d", &d.year, &d.month, &d.day);
printf("%d", days(d));
}

追答int days(struct DATE date)
{
int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};
int sum=0;
int i,leap;
for(i=0;i<date.month-1;i++)
        sum+=mon[i];
if(date.year%400==0||(date.year%4==0 && date.year%100!=0))
        leap=1;
    else
        leap=0;
    if(date.month>2)
sum+=leap;
sum+=date.day;
return sum;
}

追问


还是有报错

追答

噢,哈哈,你在结构体的定义中把month写成了mouth了呀,你改过来就是了。

本回答被提问者采纳
第3个回答  2016-11-22
我看着头晕,不是学这个的,不会哦。
相似回答