求助!数组
这是我的代码#include <stdio.h>
int main(void)
{
int year={0},month={0},day={0};//日期
int yue={31,28,31,30,31,30,31,31,30,31,30,31};//月份
long long int all;
printf("请输入你的生日(如1988-05-20):");
scanf("%d-%d-%d",&year,&month,&day);
fflush(stdin);
printf("请输入今年日期(如2016-03-28):");
scanf("%d-%d-%d",&year,&month,&day);
fflush(stdin);
year=year-year;//计算过了几年
year=(year-1)/4-year/4;//计算闰年数量
yue = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? 29 : 28;
if(month>month)//今年月份大于出生月份
{
for(int i=month,j=month;i>j;j++)
{
month+=yue;//统计出生月到今年月的日子
}
}
else if(month>month)//出生月份大于今年月份
{
for(int i=month,j=month;i>j;j++)
{
month+=-yue;//统计出生月到今年月的日子
}
}
day=day-day;//计算过了几日
all=year*366+(year-year)*365+month+day;
printf("你在这个世界上总共生存了%lld天");
return 0;
}
这是小甲鱼的代码
#include <stdio.h>
int main()
{
long count = 0; // count用于存放一共活了多少天
int year1, year2; // year1是你的生日年份,year2是今天的年份
int month1, month2;
int day1, day2;
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入你的生日(如1988-05-20):");
scanf("%d-%d-%d", &year1, &month1, &day1);
printf("请输入今年日期(如2016-03-28):");
scanf("%d-%d-%d", &year2, &month2, &day2);
while (year1 <= year2)
{
days = (year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ? 29 : 28;
while (month1 <= 12)
{
while (day1 <= days)
{
if (year1 == year2 && month1 == month2 && day1 == day2)
{
goto FINISH; // 跳出多层循环才被迫用goto语句
}
day1++;
count++;
}
day1 = 1;
month1++;
}
month1 = 1;
year1++;
}
FINISH: printf("你在这个世界上总共生存了%d天\n", count);
return 0;
}
日期都是输入
1988-05-20
2016-03-28
为何我和小甲鱼计算出来的天数差了九天?
输出结果我是10165天
小甲鱼是10174天 #include <stdio.h>
int main(void)
{
int year={0},month={0},day={0};//日期
int yue={31,28,31,30,31,30,31,31,30,31,30,31};//月份
long long int all;
printf("请输入你的生日(如1988-05-20):");
scanf("%d-%d-%d",&year,&month,&day);
fflush(stdin);
printf("请输入今年日期(如2016-03-28):");
scanf("%d-%d-%d",&year,&month,&day);
fflush(stdin);
year=year-year-1;//计算过了几年
year=year/4;//计算闰年数量
/*yue = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? 29 : 28;
if(month>month)//今年月份大于出生月份
{
for(int i=month,j=month;i>j;j++)
{
month+=yue;//统计出生月到今年月的日子
}
}
else if(month>month)//出生月份大于今年月份
{
for(int i=month,j=month;i>j;j++)
{
month+=-yue;//统计出生月到今年月的日子
}
} */
yue = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? 29 : 28;
month=yue-1]-day;
for(int i=month;i<12;i++)month+=yue;
yue = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? 29 : 28;
month+=day;
for(int i=0;i<month-1;i++)month+=yue;
all=year*366+(year-year)*365+month;//+day;
printf("你在这个世界上总共生存了%lld天",all);
return 0;
}
页:
[1]