『壹』 用c語言編程,輸入一個日期,系統輸出第二天的日期。求解。
//輸入年月日,再輸入天數,求這些天之後的日期是多少
#include
<stdio.h>
int
main()
{
int
s[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
year=0;
int
month=0;
int
day=0;
int
n,i,daytemp;
int
flag=0;
int
nyear=0,nmonth=0,nday=0;
printf("輸入年月日\n");
scanf("%d%d%d",&year,&month,&day);
//printf("輸入天數\n");
//scanf("%d",&n);
n=1;
if(year<0||month<0||month>12||day<1||n<0)
{
printf("輸入數據錯誤\n");
return
1;
}
daytemp=day+n;//累加天數
if((year%4==0&&year%100!=0)||year%400==0)//閏年置1
flag=1;
if(day>s[flag][month])
{
printf("輸入日期與年月不符.\n");
return
1;
}
if(daytemp<=s[flag][month])//當前日期加天數在本月
{
nyear=year;
nmonth=month;
nday=daytemp;
}
else
{
i=month;
nyear=year;
while(daytemp>s[flag][i])//循環遞減,直到當前日期加天數在本月
{
daytemp=daytemp-s[flag][i];
i++;
if(i>12)//超過一年,年累加
{
nyear++;
if((nyear%4==0&&nyear%100!=0)||nyear%400==0)
flag=1;
else
flag=0;
i=i-12;
}
}
nmonth=i;
nday=daytemp;
}
printf("%d年%d月%d日第%d天後是:\n",year,month,day,n);
printf("%d年%d月%d日\n",nyear,nmonth,nday);
return
0;
}
『貳』 用c語言編寫一程序,用戶輸入日期,計算該日是今年的第幾天
#include"stdio.h"
#include"stdlib.h"
intmain()
{
intday,month,year,sum,leap;
printf(" pleaseinputyear,month,day ");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先計算某月以前月份的總天數*/
{
case1:sum=0;break;
case2:sum=31;break;
case3:sum=59;break;
case4:sum=90;break;
case5:sum=120;break;
case6:sum=151;break;
case7:sum=181;break;
case8:sum=212;break;
case9:sum=243;break;
case10:sum=273;break;
case11:sum=304;break;
case12:sum=334;break;
default:printf("dataerror ");break;
}
sum=sum+day;/*再加上某天的天數*/
if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/
{
leap=1;
}
else
{
leap=0;
}
if(leap==1&&month>2)/*如果是閏年且月份大於2,總天數應該加一天*/
{
sum++;
}
printf("Itisthe%dthday. ",sum);
return0;
}
(2)c語言輸入一個日期是多少擴展閱讀
C語言輸入任意一個日期的年、月、日的值,求出是星期幾並輸出。
#include<stdio.h>
voidmain()
{
inty,m,d,c,s,w;
printf("請輸入8位年月日,以空格隔開:");
scanf("%d%d%d",&y,&m,&d);
if(m==1)c=d;
elseif(m==2)c=31+d;
elseif(m==3)c=31+28+d;
elseif(m==4)c=31+28+31+d;
elseif(m==5)c=31+28+31+30+d;
elseif(m==6)c=31+28+31+30+31+d;
elseif(m==7)c=31+28+31+30+31+30+d;
elseif(m==8)c=31+28+31+30+31+30+31+d;
elseif(m==9)c=31+28+31+30+31+30+31+31+d;
elseif(m==10)c=31+28+31+30+31+30+31+31+30+d;
elseif(m==11)c=31+28+31+30+31+30+31+31+30+31+d;
elseif(m==12)c=31+28+31+30+31+30+31+31+30+31+30+d;
if(m>2)
{if(y%100==0){if(y%400==0)c=c+1;}
elseif(y%4==0)c=c+1;}
s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c;
w=s%7;
switch(w)
{
case0:printf("星期日");break;
case1:printf("星期一");break;
case2:printf("星期二");break;
case3:printf("星期三");break;
case4:printf("星期四");break;
case5:printf("星期五");break;
case6:printf("星期六");break;
printf(" ");
}
}
『叄』 c語言題目,輸入一個日期,計算並輸出該日期是當年的第幾天,謝謝
#include<stdio.h>
intmain()
{
intday=0;
inty=0;
intm=1;
intd=0;
scanf("%d-%d-%d",&y,&m,&d);
switch(m-1)//故意沒有在case里加break
{
case11:
day+=30;
case10:
day+=31;
case9:
day+=30;
case8:
day+=31;
case7:
day+=31;
case6:
day+=30;
case5:
day+=31;
case4:
day+=30;
case3:
day+=31;
case2:
if((y%4==0&&y%100!=0)||y%400==0)
{
day+=29;
}
else
{
day+=28;
}
case1:
day+=31;
default:
break;
}
printf("%d",day+=d);
return0;
}
示例運行結果:
2016-10-28
302
『肆』 C語言中輸入一個日期計算他是今年的第幾天
輸入年月日三個值,先累加該年之前各個月的每月天數,最後累加日期天數即可獲取結果。
一、演算法設計:
1、輸入年月日三個值;
2、為保證程序健壯性,可以對三個值的合法性進行判斷,只對合法數據進行操作;
3、累加之前各月天數;
4、累加當前日值;
5、輸出結果。
二、注意點:
可以使用數組存儲各個月份的天數,用循環累加。需要注意的是閏年的判斷。對於閏年,2月要多加一天。
三、參考代碼:
#include<stdio.h>
intmain()
{
intmdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};//十二個月的天數。
inty,m,d,r=0,i;
scanf("%d%d%d",&y,&m,&d);
if(y%400==0||(y%4==0&&y%100!=0))//閏年。
mdays[1]=29;//設置閏年二月值。
if(y<0||m<=0||m>12||d<=0||d>mdays[m-1])//輸入非法。
{
printf("輸入年月日不合法 ");//提示並退出。
return-1;
}
for(i=0;i<m-1;i++)//累加之前各個月。
r+=mdays[i];
r+=d;//累加日期值。
printf("%d ",r);//輸出結果。
return0;
}
『伍』 怎麼用C語言輸入一個日期,求該日期是該年的第幾天
我大概給個思路,代碼是現寫的 沒調試
先定義每個月的天數,2月按28天算
輸入年月日後,根據年判斷是否閏年(閏年加1天),再從1月加到當月的前一月,再加上日期就可以了
#include <stdio.h>
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
main()
{int yy,mm,dd, days;
int i;
printf("input year:"); scanf("%d", &yy);
printf("input month:"); scanf("%d", &mm);
printf("input day:"); scanf("%d", &dd);
/* 如果大於2月,要做閏年的判斷,忘了,不一定準 */
if( mm > 2 && ((year%4==0 && year%100!=0) || year%400==0) ) days = 1;
else days = 0;
/* 加上前面各整月的天數 */
for(i = 0; i < mm-1; i++) days += month[i];
/* 加上日數 */
days += dd;
printf("This is the %d day of year %d!!
", days, yy);
}
比如輸入 1999 2 1
應該輸出:This is the 32 day of year 1999!!
『陸』 編寫一個c語言程序,輸入一個年月日,輸出這個日期是這一年的第幾天。(考慮閏年)
#include <stdio.h>
void main()
{
int year=0,month=0,day=0,i=0,sum=0;
while(1)
{
printf("請輸入年份:");
scanf("%d",&year);
printf("請輸入月份:");
scanf("%d",&month);
printf("請輸入日期:");
scanf("%d",&day);
i=0;//i變數是為了控制月和日的格式是否輸入正確;
switch(month)//判斷每個月的日期是否輸入正確;
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day>0&&day<=31)
{
i=1;
}
break;
case 4:
case 6:
case 9:
case 11:
if(day>0&&day<=30)
{
i=1;
}
break;
case 2://2月閏年可以輸入29日;
if((year%4==0&&year%100!=0)||year%400==0)
{
if(day>0&&day<=29)
{
i=1;
}
}
else
{
if(day>0&&day<=28)
{
i=1;
}
}
break;
default://如果輸入不是1-12月份,那麼月份輸入有誤;
i=0;
break;
}
if(i)//如果i變數為1,那麼輸入正確,否則重新輸入;
{
break;
}
else
{
printf("請輸入正確的年月日!!! ");
}
}
i=0;
switch(month)//把每個月的日期累加;
{
case 12:
i=i+30;
case 11:
i=i+31;
case 10:
i=i+30;
case 9:
i=i+31;
case 8:
i=i+31;
case 7:
i=i+30;
case 6:
i=i+31;
case 5:
i=i+30;
case 4:
i=i+31;
case 3:
if((year%4==0&&year%100!=0)||year%400==0)
{
i=i+29;
}
else
{
i=i+28;
}
case 2:
i=i+31;
case 1:
;
}
sum=i+day;
printf("%d年%d月%d日是%d年的第%d天 !",year,month,day,year,sum);
}
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
『柒』 c語言 用switch語句解決; 輸入一個日期(ymd),求該日期至當年末有多少天
#include <stdio.h>
void main()
{
int y,m,d,day=0;
printf("請輸入年月日:");
scanf("%d%d%d",&y,&m,&d);
switch(m)
{
case 1:day+=31-d;break;
case 2:day+=28+((y%4==0&&y%100!=0)||(y%400==0))-d;break;
case 3:day+=31-d;break;
case 4:day+=30-d;break;
case 5:day+=31-d;break;
case 6:day+=30-d;break;
case 7:day+=31-d;break;
case 8:day+=31-d;break;
case 9:day+=30-d;break;
case 10:day+=31-d;break;
case 11:day+=30-d;break;
case 12:day+=31-d;break;
default:day=0;
}
switch(m+1)
{
case 2:day+=28+((y%4==0&&y%100!=0)||(y%400==0));
case 3:day+=31;
case 4:day+=30;
case 5:day+=31;
case 6:day+=30;
case 7:day+=31;
case 8:day+=31;
case 9:day+=30;
case 10:day+=31;
case 11:day+=30;
case 12:day+=31;break;
default:day+=0;
}
printf("該日至當年末有%d天 ",day);
}
『捌』 C語言,輸入一個日期,計算該日是當年的第幾天
其實你這個題有兩個錯誤,一個就是&,在C語言中,&是地址符,也就是說,最後輸出的是d的地址,
在輸入時需要&,就是需要地址才能找到存儲的地方,在輸出時則不需要,
你只要把&在輸出的地方去掉就好
第二個就是你在判斷師傅閏年時,這時候y的值你還沒打進去,沒有賦值,這樣當然會錯,下面是修改後的,你參考下,有不懂的請追問
#include <stdio.h>
main()
{int y,m,d,T;
printf("請輸入年,月,日\n");
scanf("%d,%d,%d",&y,&m,&d);
if((y%4==0&&y%100!=0)||(y%400==0))
{ T=31+29;}
else
{T=31+28;}
switch(m)
{
case 1:printf("該日是本年的%d天。\n",d);break;
case 2:printf("該日是本年的%d天。\n",d+31);break;
case 3:printf("該日是本年的%d天。\n",d+T);break;
case 4:printf("該日是本年的%d天。\n",d+T+31);break;
case 5:printf("該日是本年的%d天。\n",d+T+31+30);break;
case 6:printf("該日是本年的%d天。\n",d+T+31*2+30);break;
case 7:printf("該日是本年的%d天。\n",d+T+31*2+30*2);break;
case 8:printf("該日是本年的%d天。\n",d+T+31*3+30*2);break;
case 9:printf("該日是本年的%d天。\n",d+T+31*4+30*2);break;
case 10:printf("該日是本年的%d天。\n",d+T+31*4+30*3);break;
case 11:printf("該日是本年的%d天。\n",d+T+31*5+30*3);break;
case 12:printf("該日是本年的%d天。\n",d+T+31*5+30*3);break;
}
}
『玖』 求C語言程序,我輸入日期(年月日),然後輸入前後加減多少天,得出那個日期是多少
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int year,month,day;
int leapyear=0;//閏年時使用
int daytime=0;
int sum;
static int month_date[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("請輸入日期:(例如:2010 5 27)");
scanf("%d%d%d",&year,&month,&day);
if(year<=0||month>12||month<1)//判斷輸入是否正確
{
printf("Error!\n");
getch();
exit(0);
}
if(year%400==0||(year%4==0&&year%100!=0))//判斷是否為閏年
leapyear=1;//是就加1
if(month==2)//判斷日是否輸入正確,2月是特殊的因為分閏年和平年
{ if((month_date[month-1]+leapyear)<day||day<=0)
{
printf("Error!\n");
getch();
exit(0);
}
}
if(month!=2)//當輸入不是2月時,判斷輸入
{
if(month_date[month-1]<day||day<=0)
{
printf("Error!\n");
getch();
exit(0);
}
}
printf("\n請輸入天數:");
scanf("%d",&daytime);//輸入第N天後
if(daytime<0)
{
printf("Error!\n");
getch();
exit(0);
}
sum=daytime+day;//當前日期與N天相加
do
{
if(month==2)//判斷當月是不是二月份
month_date[month-1]+=leapyear;
if(sum>month_date[month-1])
{
sum-=month_date[month-1];
month++;//超過當月天數,加一個月
if(month==13)//當月份超過12月時,重新返到1月
{
year++;//加一年
if(year%400==0||(year%4==0&&year%100!=0))//判斷加一年後是不是閏年
leapyear=1;
else
leapyear=0;//不是閏年則為0
month=1;//因為12月的下一個月是1月
}
}
}while(sum>month_date[month-1]);//當加起來的天數少於當月的天數就停止循環
day=sum;
printf("\n第%d天後是%d %d %d",daytime,year,month,day);//輸出
getch();
}
『拾』 用c語言從鍵盤任意輸入一個日期(年月日),輸出第二天的日期(年月日)。
源程序如下:
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main()
{
int s[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 year = 0;
int month = 0;
int day = 0;
int n, i, daytemp;
int flag = 0;
int nyear = 0, nmonth = 0, nday = 0;
printf("輸入年月日
");
scanf("%d%d%d", &year, &month, &day);
//printf("輸入天數
");
//scanf("%d",&n);
n = 1;
if (year < 0 || month < 0 || month>12 || day < 1 || n < 0)
{
printf("輸入數據錯誤
");
return 1;
}
daytemp = day + n;//累加天數
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//閏年置1
flag = 1;
if (day > s[flag][month])
{
printf("輸入日期與年月不符.
");
return 1;
}
if (daytemp <= s[flag][month])//當前日期加天數在本月
{
nyear = year;
nmonth = month;
nday = daytemp;
}
else
{
i = month;
nyear = year;
while (daytemp > s[flag][i])//循環遞減,直到當前日期加天數在本月
{
daytemp = daytemp - s[flag][i];
i++;
if (i > 12)//超過一年,年累加
{
nyear++;
if ((nyear % 4 == 0 && nyear % 100 != 0) || nyear % 400 == 0)
flag = 1;
else
flag = 0;
i = i - 12;
}
}
nmonth = i;
nday = daytemp;
}
printf("%d年%d月%d日第%d天後是:
", year, month, day, n);
printf("%d年%d月%d日
", nyear, nmonth, nday);
return 0;
}
程序運行結果如下:
(10)c語言輸入一個日期是多少擴展閱讀:
其他實現方式:
int monthsize(int year, int month) {
int days;
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return 29;
return 28;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days = 31; break;
case 4:
case 6:
case 9:
case 11: days = 30; break;
}
return days;
}
int main()
int year, month, day, days;
printf("年 月 日:");
while (scanf("%d%d%d", &year, &month, &day) == 3) {
days = monthsize(year, month);
if (days == day) {
if (month == 12) {
++year;
month = 1;
day = 1;
}
else ++month;
}
else ++day;
printf("第二天是:%d/%02d/%02d
", year, month, day);
printf("年 月 日(q to quit):");
}
return 0;
}