生命计算器,不知道哪里出错,结果总是不对
#include <stdio.h>int main()
{
int i;
int j;
int f=0;
int k;
int p;
printf("请输入你的生日 (如1988-05-20)");
scanf("%d%d%d",&i,&i,&i);
printf("%d%d%d\n",i,i,i);
printf("\n请输入今年日期 (如2016-03-28)");
scanf("%d%d%d",&j,&j,&j);
printf("%d%d%d\n",j,j,j);
for(k=i;k<j;k++)
{
if((k%4==0&&k%100!=0)||k%400==0)
f+=366;
else
f+=365;
}
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
{
days = 29;
}
for ( k = 0; k < i; k++)
{
f-= days ;
}
if (j % 400 == 0 || (j % 4 == 0 && j % 100 != 0))
{
days = 29;
}
for ( p= 0; p< j; p++)
{
f+= days ;
}
f-=i;
f+=j;
printf("%d\n",f);
return 0;
} 月份那些天数的加减循环中,for循环结束条件写错了
for ( k = 0; k < i; k++)
改为
for ( k = 0; k < i-1; k++)
for ( p= 0; p< j; p++)
改为
for ( p= 0; p< j-1; p++) sunrise085 发表于 2020-7-25 18:13
月份那些天数的加减循环中,for循环结束条件写错了
我改过了,但是还是结果不对,我输入例子里面的数据,结果是10219. frankie2020 发表于 2020-7-25 19:05
我改过了,但是还是结果不对,我输入例子里面的数据,结果是10219.
你输入错了?
我这里输入例子中的数据,
1988 05 20
2016 03 28
结果是10174 frankie2020 发表于 2020-7-25 19:05
我改过了,但是还是结果不对,我输入例子里面的数据,结果是10219.
我知道你错在哪儿了
你输入的是
1988-05-20
2016-03-28
这样的话,按照你的scanf,读取到的年是1988和2016 ,月是-5和-3,日是-20和-28这样肯定是不对的
若你想这样输入,那么scanf需要修改
scanf("%d-%d-%d",&i,&i,&i);
下面那个一样修改 谢谢你,我懂了
页:
[1]