编写一个c语言程序,输入一个年月日,输出这个日期是这一年的第几天。(考虑闰年) C语言 输入年月日 输出是这一年的第几天

作者&投稿:商详 (若有异议请与网页底部的电邮联系)

#include <stdio.h>

void main()

{

int year=0,month=0,day=0,i=0,sum=0;

while(1)

{

printf("请输入年份:");

scanf("%d",&year);

printf("请输入月份:");

scanf("%d",&month);

printf("请输入日期:");

scanf("%d",&day);

i=0; //i变量是为了控制月和日的格式是否输入正确; 

switch(month) //判断每个月的日期是否输入正确; 

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

if(day>0&&day<=31)

{

i=1;

}

break;

case 4:

case 6:

case 9:

case 11:

if(day>0&&day<=30)

{

i=1;

}

break;

case 2: //2月闰年可以输入29日; 

if((year%4==0&&year%100!=0)||year%400==0)

{

if(day>0&&day<=29)

{

i=1;

}

}

else

{

if(day>0&&day<=28)

{

i=1;

}

}

break;

default: //如果输入不是1-12月份,那么月份输入有误; 

i=0;

break; 

}

if(i) //如果i变量为1,那么输入正确,否则重新输入; 

{

break;

}

else

{

printf("请输入正确的年月日!!!
");

}

i=0;

switch(month) //把每个月的日期累加; 

{

case 12:

i=i+30;

case 11:

i=i+31;

case 10:

i=i+30;

case 9:

i=i+31;

case 8:

i=i+31;

case 7:

i=i+30;

case 6:

i=i+31;

case 5:

i=i+30;

case 4:

i=i+31;

case 3:

if((year%4==0&&year%100!=0)||year%400==0)

{

i=i+29;

}

else

{

i=i+28;

}

case 2:

i=i+31;

case 1: 

;

}

sum=i+day;

printf("%d年%d月%d日是%d年的第%d天
!",year,month,day,year,sum);

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。





请分别输入年月日三个数值,计算出这是这一年的第几天?
(提示:要考虑闰年和2月的情况)
*/


#include <stdio.h>


void main()
{
int year=0,month=0,day=0,i=0,sum=0;
while(1)
{
printf("请输入年份:");


scanf("%d",&year);


printf("请输入月份:");


scanf("%d",&month);


printf("请输入日期:");


scanf("%d",&day);




i=0; //i变量是为了控制月和日的格式是否输入正确; 


switch(month) //判断每个月的日期是否输入正确;

if(day>0&&day<=28)


{


i=1;


}


}


break;


default: //如果输入不是1-12月份,那么月份输入有误; 


i=0;


break; 


}


if(i) //如果i变量为1,那么输入正确,否则重新输入; 


{


break;


}


else


{


printf("请输入正确的年月日!!!
");



}

sum=i+day;

printf("%d年%d月%d日是%d年的第%d天
!",year,month,day,year,sum);


}



#include<stdio.h>
struct tian
{
int year;
int month;
int day;
};
int days(int year,int month,int day)
{
int s=0,i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(year%4==0&&year%100!=0||year%400==0)
a[2]=29;
for(i=1;i<month;i++)
s+=a[i];
s=s+day;
return s;

}
void main()
{
int k=0;
struct tian a;
printf("输入年月日:");
scanf("%d%d%d",&a.year,&a.month,&a.day);
k=days(a.year,a.month,a.day);
printf("%d年%d月%d日是第%d天\n",a.year,a.month,a.day,k);

}

求采纳!!

#include<stdio.h>
int main()
{
int year,month,day,sum=0,i,j;
int a[][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
scanf(%d-%d-%d",&year,&month,&day);
i=(year%4==0&&year%400!=0||year%400==0)
for(j=0;j<month-1;j++)
sum=sum+a[i][j];
sum=sum+day;
printf("%d",sum);
}
有问题欢迎提出


Console.WriteLine("年");

int a = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("月");

int b = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("日");

int c = Convert.ToInt32(Console.ReadLine());

int[] d = new int[12] { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int[] e = new int[12] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int[] f = new int[12];

int g = 0;

if (a % 4 == 0)

{

if (a % 100 == 0)

{

if (a % 400 == 0)

{

f = d;

}

else

{

f = e;

}

}

else

{

f = d;

}

}

else

{

f = e;

}

if (b == 0 || b > 12)

{

Console.WriteLine("月份输入错误");

}

else if (c == 0 || c > f[b - 1])

{

Console.WriteLine("这个月没有这一天");

}

else

{

for (int i = 0; i < b - 1; i++)

{

g += f[i];

}

g += c;

}

Console.WriteLine(a + "年" + b + "月" + c + "日是该年的第" + g + "天");



C语言编程 从键盘输入一个年份和月份,输出该月有多少天(考虑闰年)~

用switch选择的:#includeint main(){int y,m;printf("请依次输入年,月:
"); scanf("%d,%d",&y,&m); //上机时注意打逗号,也可修改为其他格式switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("这个月有31天
");break;case 2 : if(y%4==0&&y%100!=0||y%400==0) //最基本的判断闰年的条件 printf("这个月有29天
");else printf("这个月有28天
");break;case 4:case 6:case 9 :case 11:printf("这个月有30天
");break;}return 0;}
用指针型列举的:#includeint 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("请依次输入年·月:
");scanf("%d%d",&p1,&p2);if(p1%4==0&&p1%100!=0||p1%400==0)a[1]=29;if(p2>12)printf("您的输入有误!
");printf("这个月的天数为:%d
",a[p2-1]);return 0;}#include main(){int a,b;printf("请输入年份和月份:
");scanf("%d%d",&a,&b);if (a%4==0&&a%100!=0)if(b==2)printf("这个月有29天
");else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)printf("这个月有31天
");else printf("这个月有30天
");else if(b==2)printf("这个月有28天
");else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)printf("这个月有31天
");else printf("这个月有30天
");}

普通
#include main(){int a,b;printf("请输入年份和月份:
");scanf("%d%d",&a,&b);if (a%4==0&&a%100!=0)if(b==2)printf("这个月有29天
");else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)printf("这个月有31天
");else printf("这个月有30天
");else if(b==2)printf("这个月有28天
");else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)printf("这个月有31天
");else printf("这个月有30天
");}


扩展资料

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语言百度经验

1、首先打开vc6.0, 新建一个vc项目。

2、添加头文件和main函数。

3、定义day、month、year、sum、leap 五个变量。

4、使用 scanf给定义的变量赋值。

5、使用switch语句,先计算某月以前的月份的总天数。

6、使用sum, 加上某天的天数。

7、判断是不是闰年。

8、如果是闰年且月份大于2, 总天数应该加一天。

9、使用printf打印sum。

10、运行程序。

C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是...
答:printf("请输入8位年月日,以空格隔开:");scanf("%d%d%d",&y,&m,&d);if (m==1) c=d;else if (m==2) c=31+d;else if (m==3) c=31+28+d;else if (m==4) c=31+28+31+d;else if (m==5) c=31+28+31+30+d;else if (m==6) c=31+28+31+30+31+d;else ...

用c语言编写万年历,要求输出任意一年的某月,能显示出这个月的日历_百度...
答:1、首先要判断一个年份是闰年还是平年,用一个子程序来做。2、然后就开始写主程序,首先用scanf得到一个年份。3、在判断这个年份是平年还是闰年后用printf在CMD中打印出来。4、在编写完成后,在Notepad++界面下按下F5,弹出输入框。5、cmd /k gcc -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe""$...

C语言:输入一个人的出生年,月,日,再输入当前年,月,日,计算此人的实际年...
答://获得当前的日期 int days0 = year*10000+(month-1)*100+day-1; int days1 = today->tm_year*10000+(today->tm_mon-1)*100+today->tm_mday-1; int age = days1-days0;//当日期或者月份不足的时候,会自动从上一级借位,因此计算出的年纪是可靠的,但是月份需要分析:需要...

C语言输入年份和天数输出对应的年月日
答:C语言输入年份和天数输出对应的年月日的源代码如下:include <iostream> int day(int &year, int &month);int main(){ int year{};int month{};std::cout << "请输入年和月(空格隔开):";std::cin >> year >> month;std::cout << "该月天数:" << day(year, month) << '\n';...

编写一个c语言程序,输入一个年月日,输出这个日期是这一年的第几天...
答:i=1;} } else { if(day>0&&day<=28){ i=1;} } break;default: //如果输入不是1-12月份,那么月份输入有误;i=0;break;} if(i) //如果i变量为1,那么输入正确,否则重新输入;{ break;} else { printf("请输入正确的年月日!!!\n");} }i=0;switch(month) //把每个月的日期...

求C语言程序,任意输入一个年月日,要求输出是星期几,要在Visual C++6.0...
答:{ if( ( year%4==0 && year%100!=0) || (year%100==0) && ( year%3200!=0 ) )return 1;else return 0;} int main(){ loop2:int a[12]={1,0,1,0,1,0,1,1,0,1,0,1};int weekDay,c,y,temp;int year,month,day;char k;printf("请按年月日格式输入(如1949 10 ...

c语言 高手们 帮帮我吧 做一个日历 输入 年月 输出 该年该月的 日历...
答://输入年份和月份 printf("请输入年份:\n");scanf("%d",&year);printf("请输入月份:\n");scanf("%d",&month );if(month==2 ){ if(year%4==0 && year%100!=0)month_day=29;else month_day=28;} else if(month==1||month==3||month==5||month==7||month==8||month==...

c语言输入一个人的生日(年月日),并输入当前日期(年月日),计算输出改学 ...
答:printf("输入非法!\n");printf("请输入出生日期:");scanf("%d,%d,%d",&startYear,&startMonth,&startDay);printf("请输入现在日期:");scanf("%d,%d,%d",&endYear,&endMonth,&endDay);} if(startMonth>endMonth||startDay>endDay){ endYear-=1;} for(i=startYear;i<endYear;i++)...

用c语言从键盘任意输入一个日期(年月日),输出第二天的日期(年月日...
答:printf("输入数据错误\n");return 1;} daytemp = day + n;//累加天数 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//闰年置1 flag = 1;if (day > s[flag][month]){ printf("输入日期与年月不符.\n");return 1;} if (daytemp <= s[flag][month...

C语言年历显示程序设计
答:void month_print(int year,int month) //输入一个年月,输出这个月的日历{ int i,c,d; c=month_day(year,month); printf("\n\n %d年%d月日历\n",year,month); printf(" S M T W T F S \n"); d=j_week(year,month,1); for(i=1;i<=c+d;i++) { if(i<=d) printf(" "); ...