Ⅰ c語言編程:輸入某年某月某日,判斷這一天是這一年的第幾天
#include <stdio.h>
int getDaysByMonth(int m,int d,char flag){
int c;
if(flag=='r'){//閏年
if(m==2){//2月是29天
return (31+d);
}else if(m>2){
c=0;
m=m-1;
for(;m>0;m--){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=29;
}else{
c+=30;
}}
return c+d;
}else{
return d;
}
}else{//平年
if(m==2){//2月是28天
return (31+d);
}else if(m>2){
c=0;
m=m-1;
for(;m>0;m--){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=28;
}else{
c+=30;
}}
return c+d;
}else{
return d;
}}}
void main(){
int y,m,d,count=1;
printf("請輸入年月日(例如2017-01-01):");
scanf("%d-%d-%d",&y,&m,&d);
while( ((((y%4==0 && y%100!=0)||(y%400==0)) && (m==2)) && d>29) || (y%400!=0
&& y%4!=0 && m==2 && d>28) || ((m==1 || m==3 || m==5 || m==7 || m==8 || m==10 ||
m==12)&&d>31) || ((m==4 || m==6 || m==9 || m==11)&& d>30)){
printf("請輸入年月日(例如2017-01-01):");
scanf("%d-%d-%d",&y,&m,&d);}
//先判斷是否為閏年
if((y%4==0 && y%100!=0)||(y%400==0)){//閏年
count=getDaysByMonth(m,d,'r');
}else{//平年
count=getDaysByMonth(m,d,'n');}
printf("%d-%02d-%02d是今年的第%d天 ",y,m,d,count);
putchar(' ');
}
網路-運算符優先順序
Ⅱ 用C語言編寫:輸入某年某月某日,判斷這一天是這一年的第幾天
main()
{
int n,year,month,day,month_day_sum=0,sum,
month_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("please input the \"year month day\"\n");
scanf("%d%d%d",&year,&month,&day);
if(year%100!=0&&year%4==0||year%400) month_day[2]=29;
if(day>31||day<1||month>12||month<1) printf("error");
else
{
for(n=1;n<month;n++) month_day_sum+=month_day[n];
sum=month_day_sum+day;
printf("%d",sum);
}
getch();
}
在WIN-TC調試通過
Ⅲ C語言編程計算該日期是該年第幾天
首先判斷是否閏年,是閏年的話2月有29天否則就只有28天,然後將前面的月份的天數加起來再加上本月天數就可以得到該日期是該年第幾天了
Ⅳ 編寫一個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語言中輸入年月日,判斷這一天是一年的第幾天……
以2月10日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。
源代碼:
#include "stdio.h"
#include "stdlib.h"
int main()
{
int day,month,year,sum,leap;
printf(" please input year,month,day ");
scanf("%d,%d,%d",&year,&month,&day);
switch(month) /*先計算某月以前月份的總天數*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error
");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("It is the %dth day.
",sum);
return 0;
}
輸出
please input year,month,day
2019,02,10
It is the 41th day.
(5)C語言編寫那天是哪一年的第幾天擴展閱讀
c語言編寫程序根據輸入的時間分別輸出問候語
#include <stdio.h>
int main()
{
int a;
printf("請輸入時間,例如:17");
scanf("%d",&a);
if(a<=12&&a>=0) printf("早");
else if(a>12&&a<=14) printf("午");
else printf("晚");
printf("%d",s);
return 0;