这是一个“三天打鱼两天晒网”的程序
#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);
}
谁能帮我纠错呢,调试时不知道哪里错,因为结构变量用得还不行,谢谢大虾们了!
[解决办法]
楼主最好把你程序的逻辑说清楚了。或者自己单步调试看看
[解决办法]
- C/C++ code
#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;}
[解决办法]
[解决办法]
- C/C++ code
#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;}