C语言:一个简单的计算日期的程序,为什么执行不下去?
#include<stdio.h>struct Day
{
int year;
int month;
int day;
}a;
int days(struct Day a)
{
int i,j,k=0;
for (i=1;i<=a.month;i++)
{
i=i-1;
switch (i)
{
case 0:j=0;break;
case 1:j=31;break;
case 2:j=28;break;
case 3:j=31;break;
case 4:j=30;break;
case 5:j=31;break;
case 6:j=30;break;
case 7:j=31;break;
case 8:j=31;break;
case 9:j=30;break;
case 10:j=31;break;
case 11:j=30;break;
default:break;
}
k=j+k;
}
k=k+a.day;
return (k);
}
int main()
{
int n;
puts("请输入年、月、日");
scanf ("%d%d%d",&a.year,&a.month,&a.day);
n=days(a);
printf ("%d月%d日是%d年的第%d天\n",a.month,a.day,a.year,n);
return 0;
}
上面这个程序在输完日期后就没反映了,也不报错
我改了半天
把上面红字的地方改成
for(i=0;i<a.month;i++)
之后就能顺利执行了,有没有大神告诉我这是为什么