C语言-判断闰年 要用switch语句 请教高人
#include
#include
int main()
{
void daysinmonth(int y,int m);
int y,m;
scanf("%d %d",&y,&m);
daysinmonth(y,m);
system("PAUSE");
return EXIT_SUCCESS;
}
int isleapyear(int y)
{
return ((0==y%4 && 0!=y%100) || 0==y%400);
}
void daysinmonth(int y,int m)
{
int days;
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
days=28;
if(isleapyear(y))
{
days++;
}
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
}
printf("%d年%d月有%d天
",y,m,days);
}
额可以用if解决,为啥要用switch呢 if也可以看成一个bool的switch嘛,一回事的。
#include<stdio.h>
intmain(){
intyear,month,ex;
printf("请输入年份及月份(空格分隔):");
scanf("%d%d",&year,&month);
if(month<1||month>12){
printf("输入有误!!");
}else{
if((year%4==0&&year%100!=0)||year%400==0){
ex=1;
printf("%d年为闰年。
",year);
}else{
ex=0;
printf("%d年不为闰年。
",year);
}
switch(month){
case4:case6:case9:case11:printf("%d月有%d天。
",month,30);break;
case2:printf("%d月有%d天。
",month,28+ex);break;
default:printf("%d月有%d天。
",month,31);
}
}
}
扩展资料
C++判断语句用switch语句完成具体某月的天数的计算(结合闰年的计算)
if(n==0)//用if语句做分支结构
{
cout<<"n=0"<<endl;
}
elseif(n<0)
{
cout<<"n<0"<<endl;
}
elseif(n>0)
{
cout<<"n>0"<<endl;
}*/
#include "stdafx.h"
#include "Stdio.h"
#include "process.h"
bool isLeap(int year); //判断是否闰年函数
int main()
{
int iyear = 0;
printf("请输入年份并回车::
");
scanf("%d", &iyear);
if (isLeap(iyear))
{
printf("闰年!
");
}
else
{
printf("非闰年!
");
}
system("pause");
return 1;
}
bool isLeap(int year)
{
//根据闰年规则判断是否闰年
if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0))
return true;
else
return false;
}
前面的似乎都没有多组测试数据~~~ 也没有将负数年份和0年份分开处理
下面是我写的:
====================================================================
#include <stdio.h>
void main()
{
int year[100],flag=0,i=0,j=0;
printf("请输入您要测试的年份(以0结束输入):"); //提示输入多组数据
do{ //用do while循环接收输入
scanf("%d",&year[i]);
i++;
}while(year[i-1]!=0);
for(j=0;j<=i;j++) //用for循环分别对每个年份处理
{
flag=year[j]<0?-1:0;
switch(flag)
{
case 1:break; //年份为负不处理
case 0:
if(year[j]==0) return; //年份为0 结束程序
else if(year[j]%400==0||year[j]%4==0&&year[j]%100!=0) printf ("%d年是润年,这一年有366天\n",year[j]);
else printf("%d年不是润年,这一年有365天\n",year[j]);
break;
}
}
}
#include "stdio.h"
main()
{int a,year;
scanf("%d",&year);
if(year<=0)
break;
else
a=year%100&&year%400;
if(a)
break;
else
a=year%4;
switch(a)
{case0:printf("366\n");
case1:printf("365\n");
}
}
有点忙,剩下的自己修改一下。
#include "stdio.h"
void main(){
int year,flag;
scanf("%d",&year);
flag=year>0?1:0;
switch(flag){
case 0:return;
case 1:if(year%400==0||year%4==0&&year%100!=0) printf("366\n");
else printf("355\n");
}
}
濮阅聚甲: #include<stdio.h> intmain(){ intyear,month,ex; printf("请输入年份及月份(空格分隔):"); scanf("%d%d",&year,&month); if(month<1||month>12){ printf("输入有误!!"); }else{ if((year%4==0&&year%100!=0)||year%400==0){ ex=1;...
嘉黎县17340847499: 【C语言编程】由键盘输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月的天数. - ?
濮阅聚甲: 用个判断就行了,年份根据是否是闰年的条件判断,月份用个switch语句,列出每个月份的天数,注意二月份有两种可能,所以先判断年份,再判断季节月份
嘉黎县17340847499: C语言的一道题:从键盘上输入年、月、日,给出这个月的天数,用switch语句编程. - ?
濮阅聚甲: #includebool leapyear(int y)//判断是否闰年 { if(y%4==0&&y%100!=0)return 1; if(y%400==0)return 1; return 0; } int main() { int year,mon,day; int daynum; scanf("%d%d%d",&year,&mon,&day); switch(mon){ case 1: case 3: case 5: case 7: case 8: ...
嘉黎县17340847499: 在C语言中 使用switch语句编写“显示某年某月的天数”程序: - ?
濮阅聚甲: 这个很简单啊,先判断年份,闰年的话主要是2月不一样,其他的没有什么区别.用你输入的第二个变量的值来计算,直接case 1、2、3、……12,然后直接返回天数不就ok吗,至于你要的“2002 年2 月是 28 天”,输出的时候控制一下就好了 ,..看来你是初学C,多做点试验就知道怎么回事了 .
嘉黎县17340847499: c语言使用switch语句编程问题 - ?
濮阅聚甲: int chkYear(int year) { if(year%100==0) return year%400; elsereturn year%4; } int main() { int year,month; scanf("%d,%d",&year,&month); if(chkYear(year)) printf("%d不是闰年\n",year); else printf("%d是闰年\n",year); switch(month) { case 1:...
嘉黎县17340847499: c语言,switch中嵌套if.给我看看怎么改?急啊急!在线等! (判断是否为闰年那一行,只改那一行,规定用if) - ?
濮阅聚甲: 编译错误.原文:case 2:if(year%4==0&&year%100!==0||year%400==0)/*判断是否为闰年*/ 修改: case 2:if(year%4==0&&year%100!=0||year%400==0)/*判断是否为闰年*/ 注:把!==0改为!=0,楼主应该是粗心了一下吧.
嘉黎县17340847499: C语言如何判断是闰年,闰年判断条件? - ?
濮阅聚甲: 1、首先在电脑中打开C-Free 5编译器,int year=0;定义year变量为整形并初始化值0,用于储存年份. 2、接着cout<<"请输入判断的年份:";输出文字提示用户. 3、 cin>>year;输入数据保存到year整形变量中. 4、 if(year<=0)判断...
嘉黎县17340847499: C语言利用switch语句求输入某年某月某日,判断这一天是这一年的第几天. - ?
濮阅聚甲: #include "stdio.h" #include "conio.h" main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month) /*先计算某月以前月份的总天数*/ { case 1:sum=0;break; case 2:...
嘉黎县17340847499: c语言程序编写:判断某一年是否为闰年 - ?
濮阅聚甲: #include<stdio.h> int main() {int a;scanf("%d",&a);if(a%400==0||a%4==0&&a%100)printf("yes");else printf("no");return 0; }
嘉黎县17340847499: 怎样编写哟个C语言有关的switch的程序? - ?
濮阅聚甲: void main() { int a; prinft("请输入一个小于3的整数:"); scanf(%d,&a); switch(a) case 0: printf("这个整数是0.");break; case 1: printf("这个整数是1.");break; case 2: printf("这个整数是2.");break; default :printf("这个数大于等于3");break; }