C语言作业题,真心编不出来。。求助大神

我们再来计算天数(两个日期之间相差几天)。
本次编程与过去的程序不一样,我们已经给出了一些子函数,请你将这些函数拿下来,然后编写主函数来完成所需要的功能。
输入: 起始日期的年,月,日 终止日期的年,月,日 (假设终止日期大于起始日期)
输出: 终止日期与起始日期之间的天数
注意:不用提交完整程序,只需要提交你自己编写的主函数即可。
预设代码前置代码view plaincopy to clipboardprint?/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ #include <stdio.h> // 声明函数原型 int leap_year( int ); int year_days( int ); int days(int,int,int); int leap_year( int year ) // 判断闰年或平年 { return ( (year%4==0 && year%100!=0) || year%400==0 ) ? 1 : 0; } int year_days(int year) // 计算一整年的天数 { return leap_year( year ) ? 366 : 365; } int days( int year, int month, int day ) // 计算该天month,day 是本年year的第几天 { int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}, i; if ( leap_year( year ) && month >2 ) day++; for ( i=1; i<month; i++ ) day += months[i]; return day; } /*********************************** int main() { This function is waiting for you. return 0; } ***********************************/ /* PRESET CODE END - NEVER TOUCH CODE ABOVE */

#include <stdio.h>

// 声明函数原型
int leap_year( int );
int year_days( int );
int days(int,int,int);

int leap_year( int year ) // 判断闰年或平年
{
return ( (year%4==0 && year%100!=0) || year%400==0 ) ? 1 : 0;
}

int year_days(int year) // 计算一整年的天数
{
return leap_year( year ) ? 366 : 365;
}

int days( int year, int month, int day ) // 计算该天month,day 是本年year的第几天
{
int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}, i;
if( leap_year( year ) && month >2 )
day++;
for( i=1; i<month; i++ )
day += months[i];
return day;
}

int main()
{
int syear,smonth,sday,eyear,emonth,eday;
int bdays;
int i;

printf("Please input the year,month,day of the start date:\n");
scanf("%d %d %d",&syear,&smonth,&sday);
printf("\nPlease input the year,month,day of the end date:\n");
scanf("%d %d %d",&eyear,&emonth,&eday);
printf("\n\n");

if((eyear-syear)==0)
bdays=days(eyear,emonth,eday)-days(syear,smonth,sday);
else if((eyear-syear)==1)
bdays=(year_days(syear)-days(syear,smonth,sday))+days(eyear,emonth,eday);
else if((eyear-syear)>1)
bdays=(year_days(syear)-days(syear,smonth,sday))+days(eyear,emonth,eday);
for(i=1;i<(eyear-syear);i++)
bdays=bdays+year_days(syear+i);

printf("The days between the start date and the end date is: %d\n",bdays);

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-29
最佳答案

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
#include<stdio.h>#include<conio.h> void input(int ar[]);void sort(int ar[]);void find(int ar[]);void output(int ar[]); void output(int ar[]){ int i; printf("\n结果是:\n"); for(i=0; i<10; i++) printf("%d ", ar[i]); printf("\n"); getch();} void find(int ar[]){ int i, j; printf("下面实现查找功能:\n"); printf("请输入一个整数:\n"); scanf("%d", &i); for(j=0; j<10 && ar[j] != i; j++) ; if(j>=10) printf("对不起,您输入的数找不到!\n"); else printf("The value is ar[%d]\n", j); } void sort(int ar[]){ int i; int j; int k; printf("下面实现排序功能:\n"); for(i=0; i<10; i++) { for(j=0; j<10-i; j++) if(ar[j]>ar[j+1]) { k=ar[j]; ar[j] = ar[j+1]; ar[j+1] = k; } } output(ar); }void input(int ar[]){ int i; printf("请输入十个整数:\n"); for(i=0; i<10; i++) scanf("%d", ar+i); output(ar);}void main(void){ int ar[10]; input(ar); sort(ar); find(ar);}本回答被网友采纳
相似回答