說兩句題外話,大多數人類都有一個迷惑行爲。在新年的那幾天回顧上一年發現自己啥都沒幹,悔恨的淚水就流了下來 爲什麼今年我還是沒上王者 然後開始給自己制定一系列自以爲能完成的計劃。
當然,想象從來都是給現實摁在地上錘的。當實際操作的時候,你總會吾日三省吾身:
1、這件事情能不能等一下做?
2、這件事能不能明天做?
3、這件事能不能不做?
畢竟明天之後還有明天,明日可以復明日。
既然你覺得還有大把時間的話,不如我們來寫一個簡單的小程序。提醒一下你的完成Flag 的剩餘時間吧!!!
(距離重新立下一個Flag 還有多久 )
題目描述
用戶輸入年月日,計算該日在本年中是第幾天,並且算出今年還有多少時間?(注意閏年問題)
輸入
年月日
解題思路:
1、判斷是否爲閏年;
2、數據的合法性;
3、求出已過天數;
4、求出剩餘天數。
#include <stdio.h>
int main(void){
//1、定義需要使用的變量
int year, month, day; //用來接收用戶輸入的年月日
int month_sum[13] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //平年數據
int count = 0; //天數
int day_sum = 365; //本年的總天數
//2、接收用戶的數據
printf("請輸入要查詢的日期:\n");
scanf("%d%d%d", &year, &month, &day);
//3、判斷數據合法性,若不合法則要求重新輸入
//年不能爲負數、月份不能超過12或爲0、天數不能超過當月天數
while(year <= 0 || month <= 0 || month > 12 || day <= 0 || day > month_sum[month - 1]){
printf("數據輸入錯誤,請您重新輸入:\n");
printf("請輸入要查詢的日期:\n");
scanf("%d%d%d", &year, &month, &day);
}
//4、 判斷是否爲閏年
if(year % 4 == 0 && year / 100 != 0 || year % 400 == 0 || year % 100 % 4 == 0){
for(int i = 0; i < month - 1; i++)
count += month_sum[i]; //將前面整月的天數相加
//按照平年數據相加天數
count += day;
//只有在二月或以後的才需要加1天
if(month >= 2) count += 1; //閏年二月份有29天
day_sum += 1; //閏年366天
}
//如果爲平年,則無需變動。因爲標準數據是按照平年標準。
else{
for(int i = 0; i < month - 1; i++)
count += month_sum[i];
count += day;
}
//5、輸出數據
printf("今天在一年中爲第%d天,您的Flag 結束日期還有:%d天!", count, day_sum - count);
return 0;
}
正確輸出
當錯誤輸入時,要求重新輸入
這裏還是要說兩句,既然Flag 立下了,就要盡全力去完成他。畢竟時間不等人,哈哈哈~
本月更新進度 2/15
創作不易,你的點贊是我最大的動力!!!
我們下次再見 end~