原题链接:[编程入门]结构体之时间设计
0.0分
48 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdio.h> struct nian{ int year, month, day; }; int main(void) { struct nian i; int j, t; int sum = 0; int a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; scanf("%d %d %d",&i.year, &i.month, &i.day); for(j = 0; j < i.month - 1; j++){ sum += a[j]; } t = sum + i.day; if(i.month > 2){ if(i.year % 4 == 0 && i.year % 100 != 0 || i.year % 400 == 0){ t++; } } printf("%d\n",t); return 0; }#include<stdio.h> struct arr { int Year; //年 int Monht; //月 int Day; //日 }p; int main() { int a[13] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//a[13]在我的编译器中会越界,当然也可以写a[12+1]留一个\n位置 scanf("%d %d %d", &p.Year, &p.Monht, &p.Day); if (p.Year % 4 == 0 && p.Year % 100 != 0 || p.Year % 400 == 0) { int j = 0; p.Monht--;减去输入的最后一个月,输入的天数代替 for (int i = 0; i < p.Monht; i++) { j += a[i]; } j += p.Day;天数 printf("%d",j); } else { int j = 0; p.Monht--; for (int i = 0; i < p.Monht; i++) { j += a[i]; } j += p.Day; j--;//平年比闰年少一天 printf("%d", j); } } return 0;#include <stdio.h> int nian(int year) { return year % 400 ? ((year % 4) ? 0 : 1 ) : 1; } struct t { int year; int month; int day; } ; int main() { int w; struct t sc; int months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; scanf("%d %d %d", &sc.year, &sc.month, &sc.day); for (int i = 0; i < sc.month - 1; i++) { w += months[i]; } w += sc.day; if ((nian(sc.year) && sc.month > 2)) w++; printf("%d\n", w); return 0; }//为什么代码运行结果没问题但是过不了,显示答案错误#include<stdio.h> struct date { int year; int month; int day; }; int mian() { struct date a; int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int sum=0; scanf("%d%d%d",&a.year,&a.month,&a.day); if(year%400==0||year%4==0&&year%100!=0)//为闰年 { a[1]=29;//第二个月 } for(int i=0;i<a.month-1;i++)//如果3月,则天数为一月加二月的总天数,再加上三月的日期。 { sum=sum+a[i];// 加前面完全过了的月份 } sum=sum+a.day;//加上这个月的天数。 printf("%d",sum); return 0; }请问这个为什么不对呀?#include<stdio.h> struct demo{ int year; int month; int day; }; int main(){ struct demo a; scanf("%d%d%d",&a.year,&a.month,&a.day); int b[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int sum=0,i; for(i=0;i<a.month-1;i++){ sum=sum+b[i]; } sum=sum+a.day; if(a.year%400==0||(a.year%4==0&&a.year%100!=0)){ sum=sum+1; } printf("%d",sum); return 0; }@奋斗的嘉 #include<stdio.h> typedef struct Time { int year; int month; int day; }Time; int calculation_date(Time *pdate) { int num,a; // 判断2月多少天 if(pdate->year%4==0) { a=29; } else { a=28; } //计算不同月份的天数 switch(pdate->month) { case 1:num=pdate->day;break; case 2:num=31+pdate->day;break; case 3:num=31+a+pdate->day;break; case 4:num=31+a+30+pdate->day;break; case 5:num=31+a+30+31+pdate->day;break; case 6:num=31+a+30+31+30+pdate->day;break; case 7:num=31+a+30+31+30+31+pdate->day;break; case 8:num=31+a+30+31+30+31+31+pdate->day;break; case 9:num=31+a+30+31+30+31+31+30+pdate->day;break; case 10:num=31+a+30+31+30+31+31+30+31+pdate->day;break; case 11:num=31+a+30+31+30+31+31+30+31+30+pdate->day;break; case 12:num=31+a+30+31+30+31+31+30+31+30+31+pdate->day;break; } return num; } int main() { int num; Time date; scanf("%d %d %d",&date.year,&date.month,&date.day); Time *p=&date; num=calculation_date(p); printf("%d ",num); return 0; }@奋斗的嘉 #include<stdio.h> #include<string.h> int main() { struct time { int year; int mon; int day; }t; int sum=0; scanf("%d %d %d",&t.year,&t.mon,&t.day); switch(t.mon) { case 12:sum=sum+t.day; case 11: if(t.mon>11) sum=sum+30; else sum=sum+t.day; case 10: if(t.mon>10) sum=sum+31; else sum=sum+t.day; case 9: if(t.mon>9) sum=sum+30; else sum=sum+t.day; case 8: if(t.mon>8) sum=sum+31; else sum=sum+t.day; case 7: if(t.mon>7) sum=sum+31; else sum=sum+t.day; case 6: if(t.mon>6) sum=sum+30; else sum=sum+t.day; case 5: if(t.mon>5) sum=sum+31; else sum=sum+t.day; case 4: if(t.mon>4) sum=sum+30; else sum=sum+t.day; case 3: if(t.mon>3) sum=sum+31; else sum=sum+t.day; case 2: if((t.year%4==0&&t.year%100!=0)||t.year%400==0) sum=sum+29; else sum=sum+28; case 1: if(t.mon>1) sum=sum+31; else sum=sum+t.day; }//不跳出循环 printf("%d",sum); return 0; }