#include stdio.h

十載品牌的成都網(wǎng)站建設(shè)公司,超過千家企業(yè)網(wǎng)站設(shè)計經(jīng)驗.價格合理,可準確把握網(wǎng)頁設(shè)計訴求.提供定制網(wǎng)站建設(shè)、商城網(wǎng)站開發(fā)、成都微信小程序、響應(yīng)式網(wǎng)站建設(shè)等服務(wù),我們設(shè)計的作品屢獲殊榮,是您值得信賴的專業(yè)網(wǎng)站制作公司。
#include stdlib.h
#include math.h
char* month[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nev","Dec"};
char* week[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int j_leapyear(int year) //定義函數(shù)檢測輸入年份是否為閏年
{
if((/*year%400==0*/year%4==0year%100!=0)||(year%400==0))
return (1);
// else if(year%4==0year%100!=0)
// return (1);
else return 0;
}
int month_day(int year,int month) //檢測該年月份有多少天
{
int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(j_leapyear(year)month==2)
return 29;
else return (mon_day[month-1]);
}
int j_week(int year,int month,int day) //檢測該天是星期幾
{
int d=0,i; //d表示該天在該年份的累計天數(shù)
int w;
/* int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(j_leapyear(year)==1)
month_day[1]=29;
for(i=0;imonth;i++)
d+=month_day[i];
d=d+day;*/
for(i=1;imonth;i++)
d+=month_day(year,i);
d+=day;
w=(year-1)+(int)(year-1)/4-(int)(year-1)/100+(int)(year-1)/400+d;//網(wǎng)上公式
return ((int)w%7);
}
int allyear(int year) //輸出全年日歷
{
int i,j,b;
printf("\n%d 日歷",year);
for(i=1;i=12;i++)
{
printf("\n\n\t%s\n",month[i-1]);
// printf(" 7 1 2 3 4 5 6 \n");
printf(" S M T W T F S \n");
b=j_week(year,i,1);
for(j=1;j=month_day(year,i)+b;j++)
{
if(j=b)
printf(" ");
else if(j-b10)
printf("%2d ",j-b);
else printf("%2d ",j-b);
//else printf("%2d ",j-b);
if(j%7==0)
putchar('\n');
}
putchar('\n');
}
return 0;
}
void month_print(int year,int month) //輸入一個年月,輸出這個月的日歷
{
int i,c,d;
c=month_day(year,month);
printf("\n\n %d年%d月日歷\n",year,month);
printf(" S M T W T F S \n");
d=j_week(year,month,1);
for(i=1;i=c+d;i++)
{
if(i=d)
printf(" ");
else printf("%2d ",i-d);
if(i%7==0)
putchar('\n');
}
putchar('\n');
}
int jisuan_day(int year,int month,int day,int x,int y,int z) //輸入年月日,輸出距x年y月z日有多少天,星期幾,以及是否是公歷節(jié)日
{
int i,a,b,c=0,d=0,days=0,m=0,n=0,t;
a=year=x?year:x;
b=yearx?year:x;
if(ab)
{
for(i=b+1;ia;i++)
c+=j_leapyear(i);
}
else c=0;
if(year!=x)
d=a-b-1;
else d=0;
m=365*d+c;
if(yearx)
{
for(i=month;i=12;i++)
n+=month_day(year,i);
days=m+n+z-day;
}
else if(yearx)
{
for(i=y;i=12;i++)
n+=month_day(x,i);
for(i=1;imonth;i++)
n+=month_day(year,i);
days=m+n+day-z;
}
else
{
for(i=month=y?y:month;i(month=y?month:y);i++)
n+=month_day(x,i);
days=abs(day-z)+n; //輸出距離y月z日有多少天
}
printf("這天離%d年%d月%d號有%d天\n",x,y,z,days);
t=j_week(year,month,day);
if(t==0) //輸出星期幾
printf("這天星期日");
else if(t==1)
printf("這天星期一");
else if(t==2)
printf("這天星期二");
else if(t==3)
printf("這天星期三");
else if(t==4)
printf("這天星期四");
else if(t==5)
printf("這天星期五");
else if(t==6)
printf("這天星期六");
putchar('\n');
if(month==1day==1)
printf("這天是元旦節(jié)");
else if(month==2day==14)
printf("這天是情人節(jié)");
else if(month==3day==8)
printf("這天是婦女節(jié)");
else if(month==3day==12)
printf("這天是植樹節(jié)");
else if(month==4day==1)
printf("這天是愚人節(jié)");
else if(month==4day==4)
printf("這天是清明節(jié)");
else if(month==5day==1)
printf("這天是勞動節(jié)");
else if(month==6day==1)
printf("這天是兒童節(jié)");
else if(month==8day==1)
printf("這天是建軍節(jié)");
else if(month==9day==10)
printf("這天是教師節(jié)");
else if(month==10day==1)
printf("這天是國慶節(jié)");
else if(month==12day==25)
printf("這天是圣誕節(jié)");
else printf("這天不是特殊節(jié)日");
putchar('\n');
return days;
}
void fish_or_net(int year,int month,int day) //判斷是打魚還是曬網(wǎng)
{
int q;
int i,a,b,c=0,d=0,days=0,m=0,n=0;
a=year=1990?year:1990;
b=year1990?year:1990;
if(ab)
{
for(i=b+1;ia;i++)
c+=j_leapyear(i);
}
else c=0;
if(year!=1990)
d=a-b-1;
else d=0;
m=365*d+c;
if(year1990)
{
for(i=month;i=12;i++)
n+=month_day(year,i);
days=m+n+1-day;
}
else if(year1990)
{
for(i=1;i=12;i++)
n+=month_day(1990,i);
for(i=1;imonth;i++)
n+=month_day(year,i);
days=m+n+day-1;
}
else
{
for(i=month=1?1:month;i(month=1?month:1);i++)
n+=month_day(1990,i);
days=abs(day-1)+n; //先確定這天離1990年1月1日有多少天
}
q=days%5+1;
if(q==1||q==2||q==3) //判斷打魚還是曬網(wǎng)
printf("漁人今天打魚");
else printf("漁人今天曬網(wǎng)");
putchar('\n');
}
/*int main() //這部分內(nèi)容用來校檢
{
int j_leapyear(int year);
int month_day(int year,int month);
int j_week(int year,int month,int day);
int allyear(int year);
void month_print(int year,int month);
int jisuan_day(int year,int month,int day,int x,int y,int z);
void fish_or_net(int year,int month,int day);
int x,y,z,year,month,day;
// allyear(2015);
//month_print(2016,12);
printf("請輸入今天的日期(按年,月,日輸入,如2016,1,14表示2016年1月14日):");
scanf("%d,%d,%d",x,y,z);
printf("\n請隨便輸入一個日期,格式同上:");
scanf("%d,%d,%d",year,month,day);
jisuan_day(year,month,day,x,y,z);
// fish_or_net(x,y,z);
return 0;
} // 這部分內(nèi)容是用來檢測上述函數(shù)是否出錯的
*/
int main()
{
int j_leapyear(int year);
int month_day(int year,int month);
int j_week(int year,int month,int day);
int allyear(int year);
void month_print(int year,int month);
int jisuan_day(int year,int month,int day,int x,int y,int z);
void fish_or_net(int year,int month,int day); //函數(shù)聲明
int option,year,month,day,x,y,z;
char ny;
system("color 1f");
while (1)
{
printf("\n\n\t 歡迎來到由...編寫的程序\n\n");
printf(" 請選擇您需要的服務(wù),輸入編號回車結(jié)束\n");
printf(" 1.輸入一個年份,輸出該年的日歷\n");
printf(" 2.輸入年月,輸出這個月的日歷。\n");
printf(" 3.輸入年月日,輸出據(jù)今天還有多久,星期幾,是否是公歷節(jié)日。\n");
printf(" 4.某人自1990年1月1日開始打魚,“三天打魚,兩天曬網(wǎng)”,輸入一個1990年以后的日期,輸出他這一天是打魚還是曬網(wǎng)。\n");
printf(" 5.退出\n");
scanf("%d",option);
switch(option) //switch分支結(jié)構(gòu)
{
case 1:
while(1) //while循環(huán),后面的1是常數(shù),表示一直到break才結(jié)束循環(huán)
{
printf("請輸入一個年份:");
scanf("%d",year);
allyear(year);
printf("你想繼續(xù)查詢?nèi)諝v么?(y表示繼續(xù),n表示結(jié)束)");
scanf("%c",ny);
if(ny=='n')
break;
}
break;
case 2:
while (1)
{
printf("輸入年月:");
scanf("%d,%d",year,month);
month_print(year,month);
printf("你想繼續(xù)查詢?nèi)諝v么?(y表示繼續(xù),n表示結(jié)束):");
scanf("%c",ny);
if(ny=='n')
break;
}
break;
case 3:
while (1)
{
printf("輸入年月日:");
scanf("%d,%d,%d",year,month,day);
printf("請輸入今天的日期:");
scanf("%d,%d,%d",x,y,z);
jisuan_day(year,month,day,x,y,z);
printf("你想繼續(xù)查詢么?(y表示繼續(xù),n表示結(jié)束):");
scanf("%c",ny);
if(ny=='n')
break;
}
break;
case 4:
while (1)
{
printf("輸入1990年1月1日以后的一個日期:");
scanf("%d,%d,%d",year,month,day);
fish_or_net(year,month,day);
printf("你想繼續(xù)查詢漁人是打魚還是曬網(wǎng)么?(y表示繼續(xù),n表示結(jié)束):");
scanf("%c",ny);
if(ny=='n')
break;
}
break;
case 5:
while (1)
{
printf("確認么?y表示是的,n表示不是");
scanf("%c",ny);
if(ny=='y')
exit(1); //表示退出程序
else if(ny=='n')
break;
}
break;
default:printf("對不起,暫時沒有這個服務(wù)");
break;
}
}
return 0;
}
#include "stdafx.h"
#include "string.h"
void main(void)
{
char src[100]={0};
char cmd[10]={0};
char cmd1[]="out -2";
char cmd2[]="out +6";
char output[7]={0};
char *p=NULL;
int len=0;
int i;
printf("please input str:");
gets(src);
len=strlen(src);
p=src;
printf("please input cmd:");
gets(cmd);
if(strstr(cmd,cmd1)!=NULL)
{
printf("out -2: %s\n",(p+len-2));
}
else if(strstr(cmd,cmd2)!=0)
{
memcpy(output,src,6);
printf("out +6: %s\n",output);
}
else
{
printf("default: %s\n",len10?(p+len-10):p);
}
}
please input str:12345 abdkdi jikl
please input cmd:out -2
out -2: kl
Press any key to continue
唉,寫得有點亂,字符串也是輸入的.
以前做過,就是用C里面自己的函數(shù)把這個函數(shù)表達出來就可以了,然后讓x在一個范圍內(nèi)遞增就可以了。。。
------------------
兄弟,以前做的資料都丟了也忘了,你自己去網(wǎng)上搜索資料或者買個C語言函數(shù)介紹的書籍。
祝好運。
新聞名稱:顯示函數(shù)c語言程序設(shè)計,C語言程序示例
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article18/dsioggp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、域名注冊、面包屑導航、移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)