c语言函数调用过程调用函数判断今天这年中第几天

输入某年某月某日,判断着一天是这一年的第几天的C语言代码
输入某年某月某日,判断着一天是这一年的第几天的C语言代码
不区分大小写匿名
#include &stdio.h&#include &conio.h&void ymd_day(int y,int m,int d){ &int m_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};&int i,s=m_day[0];&for(i=1;i&m;i++)& s=s+m_day[i];&s=s+d;&if((m&2) && (((y%4==0) && (y%100!=0)) ||(y%400==0)))& s=s+1;&printf("this is the %d day of this year!",s);}int main(){&printf("\nPlease input the year month day(xxxx-xx-xx):\n");&int y,m,d;&scanf("%d-%d-%d",&y,&m,&d);&ymd_day(y,m,d);&getch();&return 0;}
相关知识等待您来回答
编程领域专家编写程序,用scanf函数输入某年某月某日,判断这一天是这一年的第几天_百度知道
编写程序,用scanf函数输入某年某月某日,判断这一天是这一年的第几天
有高手吗?
提问者采纳
31||p-&gt#include &quot,&p-& struct date *p,p-&} n=ac(p!=0))||(f-&d&y;);
if(i&lt,int n) {%d%d%d&请输入日期(年;d);
}yd:&quot,int n);
else n+=31;void main(){
int n=0,n);
scanf(&y%400==0)) n+=29;;),&p-&struct date{ int y,&p-&
if(i&gt,n),&p-&gt:&
int m,&p-&y%100;
else n+=30;y;;d);d&lt,&p-&m&scanf(&输入错误;i++)
{ if(i==2)
int ac(struct date *f;d;
p=&i& printf(&1||p-&7)
{ if((i%2)==0) n+=30,月;该日在%d年的第%d天&
else n+=28;1) {printf(&m;y;=7)
{ if((i%2)==0) n+=31,日);;m;} int ac(struct date *f;m&y%4==0)&&(f-& while(p-&12||p-&gt,请重输;
printf(&%d%d%d&m; }呵呵.h&quot
其他类似问题
按默认排序
其他2条回答
t.h&gt.tm_mon--.h&%d %d %d&int main(
printf(&#include &#include &stdlib,0.tm_mday);
system(&quot#include &stdio,&t;
t, char *argv[]){
struct tm t={0;).tm_isdst=-1.tm_mon,&t,0.tm_year-=1900,0,&t.tm_yday+1);n&quot,0};
scanf(&PAUSE&
return 0;;.tm_year,t;
mktime(&t);%d&#92.h&gt
scanf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言:定义一个表示日期的结构,输入一个日期,计算并输出该日是本年的第几天! - C/C++专题 -- BHCODE.NET
c语言:定义一个表示日期的结构,输入一个日期,计算并输出该日是本年的第几天!
大家帮帮忙,学c半年了,怎么一点感觉思路都没有,根本不知道从那里下手!给个程序,把注释也写最好!有经验的让俺分享一下你的成果!没有那多分。只能给这些了!谢谢
C/C++ codeint is_leap_year(int year){return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;}int day_of_year(int year, int month, int day){static int data[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int result = day,for (i = 1; i & ++i) result += data[i];return is_leap_year(year)&&month&2 ? result+1 :}
博客上看到一个~不知行不行~C/C++ code#include &stdio.h&#include &stdlib.h&#include &string.h&#include &time.h&int days[6][7];int mdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int mdays2[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};#define is_leap_year(y) ((!((y) % 4) && ((y) % 100)) || (!((y) % 400)))#define max_mdays(m, y) (is_leap_year(y) ? mdays2[m] : mdays[m])// 计算指定日期与当前日期相差天数int diff_days(int y1, int m1, int d1, int y2, int m2, int d2){int d = 0;int md = max_mdays(m1, y1);while ((y1 != y2) || (m1 != m2) || (d1 != d2)){d++;d1++;if (d1 & md){d1 = 1;m1++;if (m1 &= 12){m1 = 0;y1++;}md = max_mdays(m1, y1);}}}int get_wday(int y, int m, int d){time_int cy, cm, cd,int dd, w, f = 0;time(&t);tm = *localtime(&t);cy = tm.tm_year + 1900;cm = tm.tm_cd = tm.tm_cw = tm.tm_if (cy & y){dd = diff_days(cy, cm, cd, y, m, d);f = 1;}else if (cy & y){dd = diff_days(y, m, d, cy, cm, cd);}else{if (cm & m){dd = diff_days(cy, cm, cd, y, m, d);f = 1;}else if (cm & m){dd = diff_days(y, m, d, cy, cm, cd);}else{if (cd & d){dd = diff_days(cy, cm, cd, y, m, d);f = 1;}else if (cd & d){dd = diff_days(y, m, d, cy, cm, cd);}else{dd = 0;}}}// 计算指定日期是星期几w = f ? (cw + (dd % 7)) : (cw - (dd % 7)) ;if (w & 0){w += 7;}// 计算指定日期所属月的第一天是星期几w = (w - ((d - 1) % 7));if (w & 0){w += 7;}}int main(){int year, mon,int i, j, d, w,printf("请输入日期: ");scanf("%d %d %d", &year, &mon, &day);if (((mon & 1) || (mon & 12))|| ((day & 0) || (day & mdays[mon - 1]))){printf("输入错误! [1 &= 月 &= 12] [1 &= 日 &= 31]\n");return -1;}w = get_wday(year, mon - 1, day);md = max_mdays(mon - 1, year);d = 1;while (d &= md){i = w / 7;j = w % 7;days[i][j] = d++;w++;}printf("\n 日期: %d 年 %d 月 %d日\n", year, mon, day);printf("==============================\n");printf(" %2s %2s %2s %2s %2s %2s %2s\n", "日", "一", "二", "三", "四", "五", "六");for (i = 0, d = 0; i & 6; i++){for (j = 0; j & 7; j++){if (days[i][j]){d++;(d == day) ? printf("[%2d]", d) : printf(" %2d ", d);}else{printf("%-4s", "");}}printf("\n");}printf("==============================\n");system("pause");return 0;}
typedef struct __date{short int year : 15;unsigned char month : 4;unsigned char day : 5;} _date_;int is_leap_year(short int year){return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;}int day_of_year(_date_ date){static int data[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int result = date.day,for (i = 1; i & date. ++i) result += data[i];return is_leap_year(date.year)&&date.month&2 ? result+1 :}
ansi的C标准中就有时间的结构struct tm{int tm_int tm_int tm_int tm_int tm_int tm_int tm_int tm_int tm_};在time.h中,且有一套标准函数:char * asctime(const struct tm *__tblock);char * ctime(const time_t *__time);double difftime(time_t __time2, time_t __time1);struct tm * gmtime(const time_t *__timer);struct tm * localtime(const time_t *__timer);time_t time(time_t *__timer);time_t mktime(struct tm *__timeptr);clock_t clock(void);_SIZE_T strftime(char *__s, _SIZE_T __maxsize,const char *__fmt, const struct tm *__t);等用这些函数LZ应该足够应付有关时间方面的问题了
不用那么复杂吧,给你写个简单的
路过,学习~~ 回复内容太短了!
//输入年月日,给你转换为当年的第几天C/C++ code#include &iostream& #include &time.h&int main(){int t1,t2; memset(&mytm,0,sizeof(struct tm));memset(&tmptm,0,sizeof(struct tm));cout&&"请输入年并按回车结束:";cin&&mytm.tm_cout&&"请输入月并按回车结束:";cin&&mytm.tm_cout&&"请输入天并按回车结束:";cin&&mytm.tm_ mytm.tm_year = mytm.tm_year - 1900; tmptm.tm_year = mytm.tm_tmptm.tm_mon=1;tmptm.tm_mday=1; t1=mktime(&mytm);t2=mktime(&tmptm);cout&&"你所输入的日期是当年的第:"&&(t1 - t2)/(60*60*24)+1&&"天"&&system("pause");return 0;}
struct tmstruct tm是系统定义的,结构如下:struct tm{int tm_int tm_int tm_int tm_int tm_int tm_int tm_int tm_int tm_};
引用 9 楼 huanmie_09 的回复:C/C++ code#include&stdio.h&struct date {};int is_leap_year(int year){return year%4==0&& year%100!=0|| year%400==0;}int day_of_year(struct date*d){staticint data[2][12]=?-LS太牛了~
C/C++ code//[Quote=引用 9 楼 huanmie_09 的回复:]#include&stdio.h&struct date {};int is_leap_year(int year){return year%4==0&& year%100!=0|| year%400==0;}int day_of_year(struct date*d){staticint data[2][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}};int i,int result= d-&j= is_leap_year(d-&year);for (i=0; i& d-&month-1;++i) {result+= data[j][i];}}int main(){d.year=2010;d.month=3;d.day=10;printf("%d年%d月%d日是该年中的第%d天.\n", d.year, d.month, d.day, day_of_year(&d));return0;}帮顶
可能我太笨了,我就9楼的,看的有些思路!不过还是谢谢大家!分数少,大家见谅!
C/C++ code/*年*//*月*//*日*/int days = 0;/*该年的第几天*/switch (month){case 12:days += 30;case 11:days += 31;case 10:days += 30;case 9:days += 31;case 8:days += 31;case 7:days += 30;case 6:days += 31;case 5:days += 30;case 4:days += 31;case 3:{if (0 == year % 4){days += 29;}else{days += 28;}}case 2:days += 31;default:days += 0;}
default里面加个break
最后少一句days +=
C/C++ code#include &stdio.h&struct date {
}; int leap_year(int a);int cal_day(struct date a);/*判断闰年*/ int leap_year(int a){if(a%400==0||(a%4==0&&a%100!=0)) return 1;else return 0;// if(a%400==0)// return 1;// else if(a%100==0)// return 0;// else if(a%4==0)// return 1;// else // return 0;}/*计算一年中的第几天*/ int cal_day(struct date a) {int sum=0,b[]={31,28,31,30,31,30,31,31,30,31,30,31} ;for(int i=0;i&a.month-1;i++) sum+=b[i]; if(a.month&2)sum=sum+a.day+leap_year(a.year); elsesum=sum+a. } void main(){printf("\n请输入日期(年 月 日)\n"); scanf("%d%d%d",&a.year,&a.month,&a.day); n=cal_day(a);printf("该日在本年中是第%d天\n",n);}应该可以,也是从别的博客上转的
引用 12 楼 cm110119 的回复:可能我太笨了,我就9楼的,看的有些思路!不过还是谢谢大家!分数少,大家见谅!struct tm是c语言头文件time.h中定义的一个结构体,楼主可以在网上搜索一下,http://www.blogjava.net/lantin/articles/177127.html
C/C++ code#include &stdio.h&struct date {
}; int leap_year(int a);int cal_day(struct date a);/*判断闰年*/ int leap_year(int a){if(a%400==0||(a%4==0&&a%100!=0)) {return 1;}else {return 0;}// if(a%400==0)// return 1;// else if(a%100==0)// return 0;// else if(a%4==0)// return 1;// else // return 0;}/*计算一年中的第几天*/ int cal_day(struct date a) {int sum=0;int b[]={31,28,31,30,31,30,31,31,30,31,30,31} ;for(i=0;i&a.month-1;i++) {sum+=b[i]; }if(a.month&2){sum=sum+a.day+leap_year(a.year);} else{sum=sum+a.} } int main(){printf("\n请输入日期(年 月 日)\n"); scanf("%d%d%d",&a.year,&a.month,&a.day); n=cal_day(a);printf("该日在本年中是第%d天\n",n);return 0;}好了,经过c free编译通过的代码?结果也是正常的
bc++3.1 帮助里面对每个函数都有一小段能拷贝出来运行看效果的例子程序。非常适合初学C语言。相比较而言MSDN就没有。
yyyy年mm月dd日对应本年第几(1~365或闰年时366)天=mm为1时:ddmm大于1时:从1到mm-1月的总天数+dd,注意平年2月28天,闰年2月29天
这个不太难吧,楼主自己试着写写先
谢谢,谢谢大家的热心帮助。17楼的谢谢你的解释th!说真的没有想到这多的人回帖,呵呵,大家对我的帮助万分感谢!
飞雪的方法就很不错!
回帖21楼,呵呵,我正努力写!可是总有错误!
25 ,26 ,谢谢你们 呵呵 类我还没有学过 我会看看的
C/C++ code//题: 定义一个Date结构体数据类型(年、月、日),计算该日在本年中是第几天#include &iostream.h&struct Date{int yy,mm,};void input(Date *p){cout&&"请输入年、月、日:\n";cin&&p-&yy&&p-&mm&&p-&}int countday(Date &s){int t=0,month[]={1,31,28,31,30,31,30,31,31,30,31,30,31};for (int i=!(s.yy%400==0|| (s.yy%100!=0 && s.yy%4==0) && s.mm&2); i&s. ++i)t+=month[i];return t+s.}void main(){Dinput(&d);dayth=countday(d);cout&&"本年中的第"&&dayth&&"天!"&&}
本文地址:问一道C语言题?为什么上面的函数声明中第一个参数是数组,而下面函数调用中第一个参数却是地址?_百度知道
问一道C语言题?为什么上面的函数声明中第一个参数是数组,而下面函数调用中第一个参数却是地址?
jpg" esrc="http.hiphotos./zhidao/pic/item/7acb0a46f21fbead29.baidu.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http://h://h.com/zhidao/wh%3D600%2C800/sign=b6f9a87c4cc2d562f25dd8ebd721bcd7/7acb0a46f21fbead29./zhidao/wh%3D450%2C600/sign=ea1cd43d93ef76c6d087f32fa826d1cc/7acb0a46f21fbead29&nbsp://h;<a href="http
提问者采纳
据只是外在的形式,你学过应该知道。所以传数组名和地址都是一样的,数组名相当于数组的地址,实际传的也是一个地址
可是函数定义中第一个参数是整形数组呀
函数参数不可能传数组的拷贝的,那么大,内存不是耗完了,函数的调用都是传的数组的地址,形式上可以写成数组名的形式。
提问者评价
太给力了,你的回答完美的解决了我的问题!
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言函数调用数组 的文章

 

随机推荐