做了一個可以輸入日期的 但是運行后始終只能輸出一月份的 求解
#include <stdio.h>
int main()?
{?
? ? int year,month,day,y,sum;
? ? scanf("%d %d %d",&year,&month,&day);
? ? if(year%100==0&&year%400==0)
y=100;
else if(year%4==0&&year%100!=0)
y=100;
else
y=200;
? ? switch(y)
? ? {
case 100:
? ? ? ? if(month=1)
sum=day;
else if(month=2)
sum=31+day;
? ? ? ? else if(month=3)
sum=60+day;
? ? ? ? else if(month=4)
sum=91+day;
? ? ? ? else if(month=5)
sum=121+day;
? ? ? ? else if(month=6)
sum=152+day;
? ? ? ? else if(month=7)
sum=182+day;
? ? ? ? else if(month=8)
sum=213+day;
? ? ? ? else if(month=9)
sum=244+day;
? ? ? ? else if(month=10)
sum=274+day;
? ? ? ? else if(month=11)
sum=305+day;
? ? ? ? else if(month=12)
sum=335+day;
break;
? ? ? ? case 200:
if(month=1)
sum=day;
else if(month=2)
sum=31+day;
? ? ? ? else if(month=3)
sum=59+day;
? ? ? ? else if(month=4)
sum=90+day;
? ? ? ? else if(month=5)
sum=120+day;
? ? ? ? else if(month=6)
sum=151+day;
? ? ? ? else if(month=7)
sum=181+day;
? ? ? ? else if(month=8)
sum=212+day;
? ? ? ? else if(month=9)
sum=243+day;
? ? ? ? else if(month=10)
sum=273+day;
? ? ? ? else if(month=11)
sum=304+day;
? ? ? ? else if(month=12)
sum=334+day;
break;
? ??
? ??
? ? }
? ? printf("%d",sum);
? ??
? ? system("pause");
? ??
? ??
? return 0;
}
2018-08-12
以下代碼可以直接復制測試,可以參考下:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
/*
使用switch語句和if...else語句,計算2008年8月8日這一天,是該年中的第幾天。
程序分析:
? ? 以5月1日為例,應該先把前4個月的天數(shù)加起來,然后再加上1天即本年的第幾天。
特殊情況:
? 在計算閏年的時候,2月是29天。
*/
/* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day =8;
? ? int mNumber;//該月份number天數(shù)
? ? int mTnumber=0;//本月之前月份累計天數(shù)?
? ? int number;//全年第number天數(shù)
? ??
int i;//定義循環(huán)變量i?
? ? for(i=0;i<=month-1;i++){
? ? switch(i){
? ? case 0:
? ? mNumber=0;
? ? break;
? ? ? ? case 1:
? ? ? ? case 3:
? ? ? ? case 5:
? ? ? ? case 7:
? ? ? ? case 8:
? ? ? ? case 10:
? ? ? ? case 12:
? ? ? ?//printf("mNumber是%d",31);
? ? ? ?mNumber=31;
? ? ? ?break;
? ?case 2:
? ? ? ?//是否閏年
? ? ? ?if(year%4==0){
? ? ? ? ? ?//printf("是閏年,二月是29天");
? ? ? ? ? ?//printf("mNumber是%d",29);
? ? ? ? ? ?mNumber=29;
? ? ? ?}else{
? ? ? ? ? ?//printf("是平年,二月是28天");
? ? ? ? ? ?//printf("mNumber是%d",28);
? ? ? ? ? ?mNumber=28;
? ? ? ?}
? ? ? ?break;
? ? ? ? case 4:
? ? ? ? case 6:
? ? ? ? case 9:
? ? ? ? case 11:
? ? ? ?//printf("mNumber是%d",30);
? ? ? ?mNumber=30;
? ? ? ? break;
? ? }
? ??
? ? mTnumber+=mNumber;
}
? ? number=mTnumber+day;
? ? //printf("2008年8月8日這一天,是該年中的第%d天",number);
? ? printf("2008年8月8日這一天,是該年中的第%d天",number);
return 0;
}