該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓
例如輸入目前時間2006年12月20日19時17分59秒,計算後輸出時間是2006年12月20日19時18分00秒。
>>程式要求:
>>程式應該可以運作:通過控制台輸入資料,輸出資料通過printf給出;
>>程式結構明了、邏輯清晰;
>>請考慮閏年、月份(大小)等邏輯;
>>程式功能完整;
******************************************************************************************/
#include
int main()
{
int month_Day[12]={31,28,31,30,31,30,31,31,30,31,30,31};//建立一個包含一年中各月天數的數組
int year=0;
int month=0;
int day=0;
int house=0;
int min=0;
int second=0;
printf("請輸入目前時間,按年月日時分秒順序輸入:\n");
scanf("%d%d%d%d%d%d",&year,&month,&day,&house,&min,&second);
month_Day[1] += ((0 == year%400)||(0==year%4 && year%100!=0));//當查詢年份為閏年時,2月加1天
//判斷輸入的時間是否正确,各月的天數直接與數組中儲存的天數進行比較
if((month>12||month<1) || (day>month_Day[month-1]||day<1) || (house>23||house<0) || (min>59||min<0) || (second>59||second<0))
{
printf("您輸入的時間有誤,查詢失敗!");
return -1;
}
second = second+1;//秒鐘直接加1
if(60==second)//秒鐘加1後等于60則執行該段代碼
{
second=0;
min +=1;
if(60==min)
{
min=0;
house += 1;
if(24==house);
{
house=0;
day += 1;
if(day>month_Day[month-1])//直接與數組中的天數比較,因為之前已經确定了該年每月的天數
{
day = 1;
month += 1;
if(month>12)
{
month = 1;
year += 1;
}
}
}
}
}
printf("%d年 %d月 %d日 %d時 %d分 %d秒\n",year,month,day,house,min,second);
return 0;
}