C语言S1E17~18的课后作业第三题
#include <stdio.h>int main()
{
int day1, day2, day3;
int month1, month2, month3;
int year1, year2, year3;
long count1 = 0, count2;
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);
year3 = year1 + 80;
month3 = month1;
day3 = day1;
while(1)
{
/*if(year1 % 400 == 0 || (year1 % 4 && year1 % 100 != 0))
{
days = 29;
}
else
{
days = 28;
}*/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)
{
count2 = count1;
printf("你在这个世界上总共生存了%d天\n", count2);
}
if(year1 == year3 && month1 == month3 && day1 == day3)
{
printf("如果能活到80岁,你还剩下%d天\n", count1 -count2);
printf("你已经使用了%.2f\%%的生命,请好好珍惜剩下的时间!\n", (double)count2 / count1 * 100);
goto FINISH;
}
day1++;
count1++;
}
day1 = 1;
month1++;
}
month1 = 1;
year1++;
}
FINISH : return 0;
}
重点在if else和三目运算符这边 , 救救孩子吧 ,真的不行呀。 顶一下 鱼油快来帮我 无敌大帅哥 发表于 2019-8-14 13:38
顶一下 鱼油快来帮我
我都看不出你的问题是什么,怎么帮?
人造人 发表于 2019-8-14 14:30
我都看不出你的问题是什么,怎么帮?
我的意思是
你可以分别用if 和 else语句 与三目运算符 分别检测一次得出的答案是不一样的我是真的没搞明白 枯了 本帖最后由 无敌大帅哥 于 2019-8-14 15:01 编辑
一个是 另一个是 枯了难受呀 老铁 if(year1 % 400 == 0 || (year1 % 4 && year1 % 100 != 0)) 这句有问题,
if(year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ,应该是这样才对 东辰木 发表于 2019-8-14 16:30
if(year1 % 400 == 0 || (year1 % 4 && year1 % 100 != 0)) 这句有问题,
if(year1 % 400 == 0 || (year1...
打扰了,可能学傻了 ,这么低级的错误 想半天 哈哈哈哈{:10_266:}
页:
[1]