c语言计算某年某月某日是一年中的第几天
对于此类简单程序,没必要按长篇报告文学的形式。20行以内的程序,你就是扩写成10000行,也不是10000行的程序。
#include void main(){int i,year,month,day,date=0,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};scanf("%d-%d-%d",&year,&month,&day);if(year%4==0&&year%100||year%400==0) a[2]=29;for(i=0;i<month;i++)date+=a[i];date+=day;printf("%d年的第%d天",year,date);}
#include<stdio.h>
//输入某年某月某日,判断这一天是这一年的第几天?
int getDaysByMonth(int m,int d,char flag)
{
int c;
if(flag=='r'){//闰年
if(m==2){//2月是29天
return(31+d);
}else if(m>2){
c=0;
m=m-1;
for(;m>0;m--)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=29;
}else{
c+=30;
}
}
return c+d;
}else{
return d;
}
}else{//平年
if(m==2){//2月是28天
return(31+d);
}else if(m>2){
c=0;
m=m-1;
for(;m>0;m--)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=28;
}else{
c+=30;
}
}
return c+d;
}else{
return d;
}
}
}
void main()
{
int y,m,d,count=1;
printf("请输入年月日(例如2017-01-01):");
scanf("%d-%d-%d",&y,&m,&d);
while(((((y%4==0&&y%100!=0)||(y%400==0))&&(m==2))&&d>29)||
(y%400!=0&&y%4!=0&&m==2&&d>28)||
((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&d>31)||
((m==4||m==6||m==9||m==11)&&d>30)){
printf("请输入年月日(例如2017-01-01):");
scanf("%d-%d-%d",&y,&m,&d);
}
//先判断是否为闰年
if((y%4==0&&y%100!=0)||(y%400==0)){//闰年
count=getDaysByMonth(m,d,'r');
}else{//平年
count=getDaysByMonth(m,d,'n');
}
printf("%d-%02d-%02d是今年的第%d天
",y,m,d,count);
putchar('
');
}
扩展资料:include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏
可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。
int main(int argc, char *argv[])
{
int y,m,d;
int sum=0;
int flog;
printf("请输入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
if(( y%4==0 && y%100!=0 ) || y%400==0)
flog=1;
else
flog=0;
while((y<0)||(m>12||m<0)||(d<0||d>31)||((m%2==0)&&(d==31))||((flog==1)&&(m==2)&&(d>28)))
{
printf("input errro!\n");
printf("请输入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
}
switch (m-1)
{
case 12: sum+=31;
case 11: sum+=30;
case 10: sum+=31;
case 9: sum+=30;
case 8: sum+=31;
case 7: sum+=31;
case 6: sum+=30;
case 5: sum+=31;
case 4: sum+=30;
case 3: sum+=31;
case 2:
if(flog==1)
sum+=28;
else
sum+=30;
case 1: sum+=31;break;
default:printf("非法月份\n");
break;
}
sum=sum+d;
if(flog==1)
printf("%d 是闰年!\n",y);
printf("这一天是这年的第%d天",sum);
return 0;
}
C语言:某年某月某日是这一年的第几天?
首先不看你逻辑对不对吧,比较和赋值要区分开 if (i == 1) 不是 if(i = 1)接着C语言在做一系列比较时,也没有if(i ==3 || 5 || 7 || 8 || 10 || 12 )这种写法 应该是if (i ==3 || i ==5 || i ==7 || i ==8 || i ==10 || i ==12 )...
c语言编程:输入某年某月某日,计算出这一天是该年的第几天?该怎么解答啊...
\/\/输入年月日,输出是该年第几天 include<stdio.h> int sum(int month,int day){ int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int i;for(i=1;i<month;i++)day+=days[i];return(day);} int leap(year){ int leap=0;if((year%4==0&&year%100!=0)||(...
C语言编程,求某年某月的天数(不用switch语句不行吗?) 我的程序无论是...
你的条件判断写得有问题,用\/\/注释修改了,结果如下:include<stdio.h> void main(){ int year,month;printf("please input a year and a month:");scanf("%d%d",&year,&month);if(month==1||month==3||month==5||month==7||month==8||month==10|| month==12)\/\/if (month=1|...
用C语言编程:输入某年某月某日,判断这一天是这一年的第几个星期中的星 ...
{ sum-=1;} printf("距1984年1月1日一共有%d天\\n",sum);\/*上面是计算输入的日期距1984年1月1日一共经历了多少天*\/ weekday = (sum-1) % 7;week = yearday \/ 7;printf("今天是第%d个星期,星期%d",week,weekday);return ;} 才给这么点分。能多加点嘛?你看都没人给你做 ...
输入某年某月某日,输出这是今年的第几天,C语言问题
输入年月日三个值,先累加该年之前各个月的每月天数,最后累加日期天数即可获取结果。一、算法设计:1、输入年月日三个值;2、为保证程序健壮性,可以对三个值的合法性进行判断,只对合法数据进行操作;3、累加之前各月天数;4、累加当前日值;5、输出结果。二、注意点:可以使用数组存储各个月份的...
4、 输入某年某月,判断该月一共有几天?(注意:考虑闰年的情况)c语言
include"stdio.h"intmain(){ inta,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...
【坐等】C语言编程题:输入某年某月,求该月天数。
include "stdio.h"int main(void){ char md[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int y,m; while(1){ printf("Please input year & month(' ' separated)...\\n"); if(scanf("%d%d",&y,&m) && y>0 && m>0 && m<13){ md[1] += y%4...
c语言输入某年某月某日 判断这一天是这一年的第几天用switch
include "stdio.h"#include "conio.h"int 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:sum=31;break;case 3:sum=59;break;...
C语言实验题——某年某月的天数
\/* 经验证,可以正确运行 *\/ include <stdio.h> include <math.h> \/*===*\/ void GetYearMonth(char *str, int *Year, int *Month){ int k=0;int mon_flag=0;int year=0,month=0;while(str[k]!='\\0'){ \/***\/ if(str[k]>='0'&& str[k]<='9'){ if(!mon_...
日期计算(C语言)
\/\/year . month --年 . 月;\/\/year1是计算的最初基数,也是能够查询到的最早年限;\/\/daysfrom11 -- 某年某月距离1月1日即元旦的天数,初值为0;\/\/功能实现靠daysfrom11累加而得;int mthdays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};\/\/mthdays[i]表示月份为i的那一个月的...
章萧贝乐: |#include <stdio.h> #include <stdlib.h>static int daytable[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} };/* Get the days from year month day */ void get_day ( int year, int *dayofyear, int ...
宿州市13978923376: C语言编程:输入某年某月某日,判断这一天是这一年的第几天? - ?
章萧贝乐: 可以使用数组,并且使用数组代码更简洁一些,参考代码如下: #include int main() { int i, days = 0; int year, month, day; int day_tab[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; printf("输入年、月、日,用空格隔开:"); scanf("%...
宿州市13978923376: c语言计算某年某月某日是一年中的第几天 - ?
章萧贝乐: ||#include <stdio.h>int main(int argc, char *argv[]) {int y,m,d; int sum=0; int flog; printf("请输入年月日(yyyy-mm-dd)\n"); scanf("%4d-%2d-%2d",&y,&m,&d); if(( y%4==0 && y%100!=0 ) || y%400==0) flog=1; else flog=0; while((y<0)||(m>12||...
宿州市13978923376: C语言计算某年某月某日 是该年的第几天 - ?
章萧贝乐: #include void main() { int y,m,d; int sum=0; int flog;//标识是否是闰年 printf("请输入年月日(yyyy-mm-dd)\n"); scanf("%4d-%2d-%2d",&y,&m,&d); if(( y%4==0 && y%100!=0 ) || y%400==0) flog=1; else flog=0; while((y<0)||(m>12||m<0)||(d<0||...
宿州市13978923376: C语言编程:输入某年某月某日判断这一天是一年的第几天的程序是是什么? - ?
章萧贝乐: #include <stdio.h>//返回指定年月日是对应年度的第几天 int getDays(int month,int day); int isRunnian(int year);int main(int argc,char* argv[]) { int year=0; int month=0; int day=0;printf("请输入年月日格式示例20140101\n"); scanf("%4d%2d...
宿州市13978923376: 编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天. - ?
章萧贝乐: 已经修改过了:#include "stdio.h" main() { int day,month,year,sum,leap; printf("please input year,month,day(like 2000 10 01):"); scanf("%d%d%d",&year,&month,&day); if( (month>12||day>31)||/*the day (month>12 or day>31) is not exist!*/ ...
宿州市13978923376: 用C语言输入某年某月某日判断这一天是这一年的第几天 - ?
章萧贝乐: //主要功能是实现了 #include<stdio.h> struct date { int y,m,d; }; int fun(struct date *p) { int a=0; switch(p->m) {case 12:a+=30;//加上11月份的天数 case 11:a+=31;//加上10月份的天数,以下依次类推 case 10:a+=30; case 9:a+=31; case 8:a+=31; ...
宿州市13978923376: 用C语言编写:运用函数输入年月日使之输出这是一年中的第几天? - ?
章萧贝乐: |||运行结果:图片里 #includeint main( void ) { int y,m,d,mm[]={31,28,31,30,31,30,31,31,30,31,30,31}; int i,ds; printf("输入年:"); scanf("%d",&y); printf("输入月:"); scanf("%d",&m); printf("输入日:"); scanf("%d",&d); if(y%4==0 && y%100!=0 || y%400==0) mm[1]++; if(y
宿州市13978923376: C语言计算某年某月某日为该年的第几天?
章萧贝乐: 1234567891011121314151617181920212223242526272829303132333435363738394041424344 #include <stdio.h> voidmain() { inty,m,d; intsum=0; intflog;//标识是否是闰年 printf("请输入年月日(yyyy-mm-dd)\n"); scanf("%4d-%2d-...
宿州市13978923376: C语言编程显示某年某月某日是该年的第几天 - ?
章萧贝乐: 你这里的switch语句有问题,从头到尾case没加break,相当于每次都是从判断的那个地方顺序往下全加了一遍,你可以再看一下switch的用法 switch (m-1){ case 11: r+=30;break; case 10: r+=31;break; case 9: r+=30;break; case 8: r+=31;break; ...