C语言编程 从键盘输入一个年份和月份,输出该月有多少天(考虑闰年)
用switch选择的:
#include<stdio.h>
int main()
{
int y,m;
printf("请依次输入年,月:\n");
scanf("%d,%d",&y,&m); //上机时注意打逗号,也可修改为其他格式
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("这个月有31天\n");break;
case 2 : if(y%4==0&&y%100!=0||y%400==0) //最基本的判断闰年的条件
printf("这个月有29天\n");
else printf("这个月有28天\n");break;
case 4:
case 6:
case 9 :
case 11:printf("这个月有30天\n");break;
}
return 0;
}用指针型列举的:
#include<stdio.h>
int a[]={31,28,31,30,31,30,31,31,30,31,30,31},*p1,*p2,*p3,i=1,k=0;
int main()
{
int p1,p2;
printf("请依次输入年·月:\n");
scanf("%d%d",&p1,&p2);
if(p1%4==0&&p1%100!=0||p1%400==0)
a[1]=29;
if(p2>12)
printf("您的输入有误!\n");
printf("这个月的天数为:%d\n",a[p2-1]);
return 0;
}#include <stdio.h>
main()
{int a,b;
printf("请输入年份和月份:\n");
scanf("%d%d",&a,&b);
if (a%4==0&&a%100!=0)
if(b==2)
printf("这个月有29天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");
else if(b==2)
printf("这个月有28天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");}普通
#include <stdio.h>
main(){
int a,b;
printf("请输入年份和月份:\n");
scanf("%d%d",&a,&b);
if (a%4==0&&a%100!=0)
if(b==2)
printf("这个月有29天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");
else if(b==2)
printf("这个月有28天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");}
扩展资料
switch 语句可以处理多分支选择问题,根据其中break 语句的使用方法,一般分三种情况。
在switch 语句的每个语句段中都使用break 语句,这是switch 语句的主要使用方法,一般形式为:
switch (表达式)
case 常量表达式1: 语句段1; break;
case 常量表达式2: 语句段2; break;
case常量表达式n: 语句段n; break;
case常量表达式n+1:语句段n+ 1; break;
default :
参考资料c语言百度经验
所需代码如下:
#include <iostream>
using namespace std;
class Date //声明日期类
{
private:
int year;
int month;
int day;
public:
void setDate(int y,int m,int d);//设置日期函数
void printDate();//打印日期函数
bool isLeap();//判断是否是闰年的函数
int NumberofDate();//计算多少天的函数
};
void Date::setDate(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
void Date::printDate()
{
cout<<year<<"年"<<month<<"月"<<day<<"日";
}
bool Date::isLeap()
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return true;
}
else
{
return false;
}
}
int Date::NumberofDate()
{
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(isLeap())
{
a[1]=29;
}
int number=0;
for(int i=0;i<month-1;i++)
{
number+=a[i];
}
number+=day;
return number;
}
int main()
{
Date date;
int y,m,d;
cout<<"please input a date"<<endl;
cin>>y>>m>>d;
date.setDate(y,m,d);
date.printDate();
cout<<"是"<<y<<"年的第"<<date.NumberofDate()<<"天"<<endl;
return 0;
}
扩展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
思路:可以使用switch语句来完成该编程,具体的编程内容代码如下:
#include < <stdio.h>
main(
{
printf("Input year,month: ");
scanf("%d, %d", &year, &month);/*输入相应的年和月*/
switch (month)
{
case 1:
case 2:
if(vyear % 4== 0 && year % 100 != O)l(year % 400 == 0))
printf("29 days\n"); /*闰年的2月有 29天*/
}
else
{
printf("28 days\n");/*平年的2月有28天*/
break;
case 4:
case 6:
case 9:
case 11:
printf("30 daysln");
break;
default:
printf("Input error!\n");
}
}
语句用法注意事项:
switch 语句可以更方便地应用于多个分支的控制流程。C89 指明,一个 switch 语句最少可以支持 257 个 case 语句,而 C99 则要求至少支持 1023 个 case 语句。
除此之外,switch 语句与 if 语句不同的是,switch 语句只能够测试是否相等,因此,case 语句后面只能是整型或字符型的常量或常量表达式;而在 if 语句中还能够测试关系与逻辑表达式。
#include<stdio.h>
int main()
{
int y,m;
printf("请依次输入年,月:\n");
scanf("%d,%d",&y,&m); //上机时注意打逗号,也可修改为其他格式
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("这个月有31天\n");break;
case 2 : if(y%4==0&&y%100!=0||y%400==0) //最基本的判断闰年的条件
printf("这个月有29天\n");
else printf("这个月有28天\n");break;
case 4:
case 6:
case 9 :
case 11:printf("这个月有30天\n");break;
}
return 0;
}
2。用指针型列举的:
#include<stdio.h>
int a[]={31,28,31,30,31,30,31,31,30,31,30,31},*p1,*p2,*p3,i=1,k=0;
int main()
{
int p1,p2;
printf("请依次输入年·月:\n");
scanf("%d%d",&p1,&p2);
if(p1%4==0&&p1%100!=0||p1%400==0)
a[1]=29;
if(p2>12)
printf("您的输入有误!\n");
printf("这个月的天数为:%d\n",a[p2-1]);
return 0;
}
方法还有很多很多,以上可供LZ参考.
int main(){
int a,b;
printf("请输入年份和月份");
scanf("%f%f",&a,&b);
if ("a%4==0&&b==02"){
printf("这个月有29天");
}
else (b==02){
printf("这个月有28天");
}
if ("a%4=!0&&b==01||b==03||b==05||b==07||b==08||b==10||b==12){
printf("这个月有31天");
}
else ("a%4=!0&&b==04||b==06||b==09||b==11){
printf("这个月有30天");
}
}