c語言三天打魚兩天曬網
三天打魚兩天曬網c語言編程用結構體變數解題思路如下:
1、計算從 1990年1月1日開純喊始至指定日期共有多少天;
2、由於「打魚斗褲櫻」和「曬網」的周期為5天,所以將計算出的天數用5去除;
3、根據余數判斷是在「打魚」還是在「曬網」;若余數為 1,2,3,則他是在「打魚」否則是在「空叢曬網」。
接下來的代碼就可以根據自己所學的知識進行解決了。
⑵ c語言 三天打魚兩天曬網 在線等 急急急!
#include<stdio.h>
intmain(){
intN,i;
scanf("%d",&N);
for(i=0;i<N;i+=5);
if(i-N>1)
printf("這個人第%d天在「打魚乎喊伍」 ",N)。else。
printf("歲或這個人第%d天在「曬網」 ",N);
(2)c語言三天打魚兩天曬網擴展閱讀:
C語言的注釋符一般分為兩種,一種是以「/*」開頭,在中間加上注釋內容,並以「*/」結尾的段落注釋符。在「/*」和「*/」之間的即為注釋。
另一種是以「//」開頭,後面加註釋內容的單行注釋符。在「//」之後的即為注釋。
C語言的注釋符是以「/*」開頭並以「*/」結尾的串。在「/*」和「*/」之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現在程序中的任何位置。
注釋用來向用戶提示或解釋程序的意義。在調試程序中對暫不使用的語句也可用注釋符括起滲物來,使翻譯跳過不做處理,待調試結束後再去掉注釋符。
⑶ c語言編程之三天打魚兩天曬網
#include <stdio.h>
#define MAX 100
#define leap(y) (y%4==0 && y%100!=0 || y%400==0)
struct d{int y,m,d;};
long days(struct d d1,struct d d2)
{
int mon[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; long td=0;
for(i=d1.y;i<d2.y;i++)
td+=leap(i)?366:365;
for(i=1;i<d1.m;i++)
td-=mon[leap(d1.y)][i];
td-=d1.d-1;
for(i=1;i<d2.m;i++)
td+=mon[leap(d2.y)][i];
td+=d2.d-1;
return td;
}
int main()
{
struct d now[MAX],start={1990,1,1};
int n,i,day;
scanf("%d",&n);
for(i=0;i<n;++i)
{
scanf("%d%d%d",&now[i].y,&now[i].m,&now[i].d);
}
for(i=0;i<n;++i)
{
day=days(start,now[i]);
if(day%5<3)
printf("He was fishing on %d %d %d\n",now[i].y,now[i].m,now[i].d);
else
printf("He was basking on %d %d %d\n",now[i].y,now[i].m,now[i].d);
}
return 0;
}
⑷ C語言「三天打魚兩天曬網」問題
根據題意可以將解題過程分為三步:
1、計算從1990年1月1日開始至指定日期共有多少天;
2、由於「打魚」和「曬網」的周期為5天,所以將計算出的天數用5去除;
3、根據余數判斷他是在「打魚」還是在「曬網」;若余數為1,2,3,則他是在「打魚」;否則是在「曬網」。
#include<stdio.h>
/*定義日期結構體*/
typedefstructdate{
intyear;
intmonth;
intday;
}DATE;
/*判斷是否為閏年,是返回1,否返回0*/
intisLeap(intyear){
return((year%4==0&&year%100!=0)||(year%400==0));
}
/*計算指定日期距離1990年1月1日的天數*/
intcountDay(DATEcurrentDay){
intperMonth[13]={0,31,28,31,30,31,30,31,31,30,31,30};/*每月天數數組*/
inttotalDay=0,year,i;
/*求出指定日期之前的每一年的天數累加和*/
for(year=1990;year<currentDay.year;year++){
if(isLeap(year))/*判斷是否為閏年*/
totalDay=totalDay+366;
else
大輪totalDay=totalDay+365;
}
/*如果為閏年,則二月份為29天*/
if(isLeap(currentDay.year))
perMonth[2]+=1;
/*將本年內的天數累加到襪仿埋totalDay中*/
for(i=0;i<currentDay.month;i++)
totalDay+=perMonth[i];
/*將本月內的天數累加到totalDay中*/
totalDay+=currentDay.day;
/*返回totalDay*/
returntotalDay;
}
intmain(void){
DATEtoday;/*指定日期*/
inttotalDay;/*指定日期距離1990年1月1日的天數*/
intresult;/*totalDay對5取余的結果*/
interror;
do{/*輸入指定日期*/
printf("Pleaseinputtheyear/month/day: ");
scanf("%d/%d/%d",&today.year,&today.month,&today.day);
printf(" ");
error=0;
if(today.year<1990)/*判斷日期格式是否正確*/
{printf("Theyearshouldbelargerthan1990! ");error=1;}
if(today.month<1||today.month>12)
{printf("Themonthinputiserror! ");error=1;}
if(today.day<0||today.day>31)
{printf("Thedayinputiserror! ");error=1;}
printf("====================================================== ");
}while(error);
totalDay=countDay(today);/*求出指定日期距離1990年1月1日的天數*/
/*天數%5,判斷輸出打魚還是曬網*/
result=totalDay%5;
if(result>0&&result<4)
告螞printf("fishing! ");
else
printf("sleeping! ");
printf(" ");
return0;
}
運行結果
1991/10/25,打漁
⑸ c語言 某人從1990年1月1日起開始「三天打魚兩天嗮網」,問某一年某一天,該人是在打魚還是在嗮網。
樓上的太復雜了,如下即可(C語言):
#include<time.h>
#include<stdio.h>
intmain(intargc,char*段漏argv[])
{
//t1為1990年1月1日
structtmt1={0,0,0,1,0,90,0,0,0},t2=握升爛{0};
printf("Pleaseinputyearmonthday:");
scanf("%d%d%d",&t2.tm_year,&t2.tm_mon,&笑碧t2.tm_mday);
//生成tm結構數據
t2.tm_year-=1900;
t2.tm_mon-=1;
//相差秒數
longseconds=(long)(difftime(mktime(&t2),mktime(&t1)));
//相差天數
longdays=(seconds+86399)/86400;
if(days%5<=2)
printf("打魚 ");
else
printf("曬網 ");
return0;
}
⑹ 關於C語言經典程序「打漁曬網」
樓主你好!!!俺仔細的看了一下程序代碼,代碼沒有錯誤!!!!
俺解釋一下(就針對與樓主的問題);
1.for(i=1;i<day.month;i++)這個for()語句沒有錯誤,這句確實只算了11個月的,但前面的term.day=31;給了補上!!!原因是無論那一年,1月和12月都是31天,所以樓主先把1月和12月的算在一起啦!!!這也正是樓主第二個疑問的所在!!!
如果樓主不信的話!!!可以把每棚拿一年的列印出啦,看看是不是365/366
要是少算一個月的話,那一定不是365/365;
修改如下:
#include<stdio.h>
#include<iostream.h>
structdate
{
intyear;
intmonth;
intday;
};
intdays(structdateday)
{
staticintday_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,},
};
inti,lp;
lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
/*判定year為閏年還是平年,lp=0為平年,非0為閏年*/
for(i=1;i<day.month;i++)/*計算本年中自1月1日起的天數*/
day.day+=day_tab[lp][i];
cout<<day.day<<endl;
returnday.day;
}
voidmain()
{
structdatetoday,term;
intyearday,year,day;
printf("Enteryear/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);/*計算從1990年至指定年的前一年共有多少天*/
}
yearday+=days(today);/*加上指定年中到指定日期的天數*/
day=yearday%5;凱或/*求余數*/
if(day>0&&day<4)
printf("hewasfishingatthatday. ");/*列印結果*/
else
printf("Hewassleepingatthatday. ");
}