|
10鱼币
#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[1] = (year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ? 29 : 28;
while (month1 <= 12)
{
while (day1 <= days[month1 - 1])
{
if (year1 == year2 && month1 == month2 && day1 == day2)
{
goto FINISH; // 跳出多层循环才被迫用goto语句
}
day1++;
count++;
}
day1 = 0;
month1++;
}
month1 = 0;
year1++;
}
FINISH: printf("你在这个世界上总共生存了%d天\n", count);
return 0;
}
while (year1 <= year2)
{
days[1] = (year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ? 29 : 28;
while (month1 <= 12)
{
while (day1 <= days[month1 - 1])
{
if (year1 == year2 && month1 == month2 && day1 == day2)
{
goto FINISH; // 跳出多层循环才被迫用goto语句
}
day1++;
count++;
}
day1 = 0;
month1++;
}
month1 = 0;
year1++;
}
循环这里 没理解明白 求指点 求注释 感激不尽
month1 代表的并不是一月, 他是一个标识,一个在循环中的变量,轮询一年,他的值会从1-12一直变化,由于代表一年的12个月的天数的数组days的下标是从0开始的 所以要减1,也就是 month1等于1的时候取的是days[0],里面存放的是1月的天数
|
最佳答案
查看完整内容
month1 代表的并不是一月, 他是一个标识,一个在循环中的变量,轮询一年,他的值会从1-12一直变化,由于代表一年的12个月的天数的数组days的下标是从0开始的 所以要减1,也就是 month1等于1的时候取的是days[0],里面存放的是1月的天数
|