永发信息网

结构体函数问题

答案:2  悬赏:50  手机版
解决时间 2021-05-14 03:59
  • 提问者网友:太高姿态
  • 2021-05-13 08:24

#include"stdio.h"
struct ymd
{
int year;
int month;
int day;
};
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int days(struct ymd *p)
{
int i,d=p->day;
if(p->year%4==0&&p->year%100!=0||p->year%400==0)
day[2]=29;
for(i=1;1<p->month;i++)
d=d+day[i];
return d;
}
void main()
{
struct ymd date;
printf("输入年份:");
scanf("%d",&date.year);
printf("输入月份:");
scanf("%d",&date.month);
printf("输入日期:");
scanf("%d",&date.day);
int d=days(&date);
printf("\n该天在本年的第%d天",d);
}

程序如上,但是输入数据后无法运行

最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-05-13 10:00

for(i=1;1<p->month;i++)
d=d+day[i];


这里应该是


for(i=1;i<p->month;i++)
d=d+day[i];

全部回答
  • 1楼网友:詩光轨車
  • 2021-05-13 11:20

#include"stdio.h" struct ymd { int year; int month; int day; }; int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int days(struct ymd *p) { int i,d=p->day; if(p->year%4==0&&p->year%100!=0||p->year%400==0) day[2]=29; for(i=1;i<p->month;i++)//这里把i写成了1真无语了 d=d+day[i]; return d; } void main() { struct ymd date; printf("输入年份:"); scanf("%d",&date.year); printf("输入月份:"); scanf("%d",&date.month); printf("输入日期:"); scanf("%d",&date.day); int d=days(&date); printf("\n该天在本年的第%d天",d); }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯