这是一个“三天打鱼两天晒网”的程序

努力奋发的小农 2012-07-24 09:58:31
#include<stdio.h>

struct date
{
int year;
int month;
int day;
};

void main()
{
struct date today,term;
int yearday, year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year,&today.month,&today.day);
term.month=12;
term.day= 31;
for(yearday=0, year = 1990; year < today.year; year++)
{
term.year = year;
yearday += days(term);
}
yearday += days(today);
day = year % 5;
if(day > 0 && day < 4)
printf("He was fishing at that day.\n");
else
printf("He was sleeping at that day.\n");
}

days(struct day)
{
struct date day;
static int day_tab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},};
int i, lp;
lp = day.year % 4 == 0 && day.year % 100 != 0 || day.year % 400 == 0;
for(i = 1; i <day.month; i++)
day.day += day_tab[lp][i];
return (day.day);
}
谁能帮我纠错呢,调试时不知道哪里错,因为结构变量用得还不行,谢谢大虾们了!
...全文
535 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
x332363930 2012-07-26
  • 打赏
  • 举报
回复
楼主东软的?
天台的故事 2012-07-26
  • 打赏
  • 举报
回复

#include<stdio.h>

struct date
{
int year;
int month;
int day;
};


int days(struct date day) //函数返回值类型
{
static int day_tab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},};
int i, lp;
lp = day.year % 4 == 0 && day.year % 100 != 0 || day.year % 400 == 0;
for(i = 1; i <day.month; i++)
day.day += day_tab[lp][i];
return (day.day);
}


int main(void)
{
struct date today,term;
int yearday, year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year,&today.month,&today.day);
term.month=12;
term.day= 31;
for(yearday=0, year = 1990; year < today.year; year++)
{
term.year = year;
yearday += days(term);
}
yearday += days(today);
day = year % 5;
if(day > 0 && day < 4)
printf("He was fishing at that day.\n");
else
printf("He was sleeping at that day.\n");

return 0;
}

自己动手,别人调试,丰衣足食。
自己动手,自己调试,锦衣玉食
wjh774221533 2012-07-26
  • 打赏
  • 举报
回复
我用的是switch有点冗长,不好意思发了,这个问题我们老师给我们布置过,让我们判断某天到底是打渔还是晒网
fzamygsd 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
运行结果。。不是那么回事啊。。。。
[/Quote]
  • 打赏
  • 举报
回复
运行结果。。不是那么回事啊。。。。
疯疯癫癫 2012-07-25
  • 打赏
  • 举报
回复
2楼正解
夏天__ 2012-07-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

我自己调试出来了,因为我后来又学习了一下这个知识点,谢谢你们哈
[/Quote]
自己动手,丰衣足食
  • 打赏
  • 举报
回复
我自己调试出来了,因为我后来又学习了一下这个知识点,谢谢你们哈
DataChat.Club 2012-07-24
  • 打赏
  • 举报
回复

#include<stdio.h>

struct date
{
int year;
int month;
int day;
};


int days(struct date day) //函数返回值类型
{
static int day_tab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},};
int i, lp;
lp = day.year % 4 == 0 && day.year % 100 != 0 || day.year % 400 == 0;
for(i = 1; i <day.month; i++)
day.day += day_tab[lp][i];
return (day.day);
}


int main(void)
{
struct date today,term;
int yearday, year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year,&today.month,&today.day);
term.month=12;
term.day= 31;
for(yearday=0, year = 1990; year < today.year; year++)
{
term.year = year;
yearday += days(term);
}
yearday += days(today);
day = year % 5;
if(day > 0 && day < 4)
printf("He was fishing at that day.\n");
else
printf("He was sleeping at that day.\n");

return 0;
}


W170532934 2012-07-24
  • 打赏
  • 举报
回复
楼主最好把你程序的逻辑说清楚了。或者自己单步调试看看

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧