這個對嗎?
#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
?int sum;
?? 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;
? default:sum=334;
?? }
?if ((year%4==0&&year%100!=0)||year%400==0)
?{
??if(month>=3)
??{
???printf("第%d年第%d月第%d天是該年的第%d天",year,month,day,sum=sum+day+1);
??}
??else
??{
????printf("第%d年第%d月第%d天是該年的第%d天",year,month,day,sum=sum+day);
??}
??
?}
??? else
?{
????????? ?printf("第%d年第%d月第%d天是該年的第%d天",year,month,day,sum=sum+day);
?}
???
? ?return 0;
}
2017-09-19
有一點是沒有考慮0-12月外的數字。還有就是有點麻煩,需要計算前幾個月相加的和。建議你這樣試一下:
#include<stdio.h>
int main(void)
{
????int year = 1996, month = 9, day = 14, num = 0, m;
????switch(month)
????{
????????case 12 : num += 30; //11月的天數
????????case 11 : num += 31;
????????case 10 : num += 30;
????????case 9 : num += 31;
????????case 8 : num += 31;
????????case 7 : num += 30;
????????case 6 : num += 31;
????????case 5 : num += 30;
????????case 4 : num += 31;
????????case3 : num += 28;
????????case2 : num += 31;
????????case1 : num += 0;
????????????????????break;
????????default : printf("一年只有12個月哦~\n");
下面就一樣了
2017-09-19
case 12;sum=xxxxx
default...
2017-09-19
好像有漏洞哦,?switch語句沒有考慮到0-12月外的數字。??default:printf("%s","請輸入正確的月份");break;