在C语言中 使用switch语句编写“显示某年某月的天数”程序:

2024-11-15 09:47:00
推荐回答(5个)
回答1:

我们可以这样写

switch(month)
{
    case 2:{
        if((year%2==0 && year%100!=0)||year%400==0)//这是闰年的判断条件,百度一下就知道了
        {   
            day=29;
        }
        else
        {
            day=28;
        }
        break;
    }
    case 4:
    case 6:
    case 9:
    case 11:day=30;break;//这一部分是小月,利用了switch的特性,没有break就继续执行
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12: day=31;break;//这一部分是大月,跟上面小月一样
}

回答2:

那就在进入swith语句之前先处理一下,比如先建立两个整形数组预存储闰年和非闰年的每个月的天数,再就是判断一下闰,加上一个判断条件,分入口进入switch语句就可以了。 其实,写程序是“法无定法”,实现方式,多对吗?给你个参考程序,判断一个日期是这一年中那一天。编译环境vc++6.0#include
using namespace std;
void main()
{
int i;
int sum=0;
int year,month,day;
int rick[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int conmon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
cout<<"请输入一个日期,格式:2010 10 10"< cin>>year>>month>>day;
if((year%4==0&&year%100!=0)||(year%400==0))
{
for(i=0;i sum=sum+rick[i];
}
else
{
for(i=0;i sum=sum+conmon[i];
}
sum=sum+day;
cout<

回答3:

定义一个宏来判断闰年,你也可以参看唐浩强C语言程序设计这本书里面的写法,他用的是调用一个函数。 #include
#define isLeap(x) ((x) % 4 == 0 ? (x) % 100 == 0 ? (x) % 400 == 0 ? 1 : 0 : 1 : 0)void main()
{
int y,m,day,leapday;
printf("Please enter year and month\n");
scanf("%d,%d",&y,&m);

if(isLeap(y))
{
leapday=28;
}
else
{
leapday=29;
} switch (m)
{
case 1:
day=31;
break;
case 2:
day=leapday;
break;
case 3:
day=31;
break;
case 4:
day=30;
break;
case 5:
day=31;
break;
case 6:
day=30;
break;
case 7:
day=31;
break;
case 8:
day=31;
break;
case 9:
day=30;
break;
case 10:
day=31;
break;
case 11:
day=30;
break;
case 12:
day=31;
break;
}
printf("%d年%d月是%d天",y,m,day);
}

回答4:

#include

int main()
{
puts("Please enter year and month :");
int y, m;
scanf("%d %d", &y, &m);
const int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int ans = days[m];
if (m == 2 && (y % 4 == 0 && y % 100 != 0 || y % 400 == 0))
++ans;
printf("%d \t %d is %d days", y, m, ans);
}

回答5:

1:bool isLeap(int year){�0�2 �0�2 return year%4==0 && �0�2y ear%100 !=0 �0�2|| year%400 ==0);}2: 弄 一个数组int month[] = {31,0,31,30,31,30,31,31,30,31,30,31}再弄个方法返回二月的�0�2 �0�2 return �0�2 isLeap?29:28;