|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 nzr848704474 于 2019-11-27 18:41 编辑
在生命计算器2.0中,我的代码如下:
#include<stdio.h>
int main()
{
long count=0,count1=0;//用于一共多少天
int year1,year2,year3;//Year1是生日,year2是当前日期
int month1,month2,month3;
int day1,day2,day3;
int days[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入您的生日:(如1995-04-17)");
scanf("%d-%d-%d",&year1,&month1,&day1);
printf("请输入您的生日:(如1995-04-17)");
scanf("%d-%d-%d",&year2,&month2,&day2);
year3=year1+80;
month3=month1;
day3=day1;
while(year1<=year2||year1<=year3)
{
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)
{
count1=count;
printf("你在这个世界上活了%d天\n",count);
}
if(year1==year3&&month1==month3&&day1==day3)
{
printf("如果你能活到80岁,还剩下%d天\n",count-count1);
printf("你已经使用了%%%.2f的生命,珍惜剩下的时间\n",(double)count1/count*100);
goto Finish;
}
day1++;
count++;
}
day1=1;
month1++;
}
month1=1;
year1++;
}
Finish:printf("%d,%d\n",count,count1);
return 0;
我的问题是:1.为什么没有goto语句,程序就会出问题?我认为当执行到输出year3的时候已经year1==year3了,循环就不会再继续了,那有goto好像就是直接到,没goto就是一层一层退出循环,所以应该是没区别。
2.求解释count和count1的值是怎么变化的。
谢谢大家了。 |
|