哪里错了?再次疑惑ing

来源:百度知道 编辑:UC知道 时间:2024/06/17 13:28:40
题目:编写一个程序,求解问题为:若一头小母牛,从出生起第四个年头开始每年生一头母牛,第N年有多少头母牛?
正确答案:
int cow(int n)
{
int i,a1,a2,a3,a4,t,sum=0;
for(i=1;i<=n;i++)
{if(i==1)
{a1=1,a2=a3=a4=0;}
else if(i==2)
{a1=a3=a4=0;a2=1;}
else if(i==3)
{a1=a2=a4=0;a3=1;}
else
{a4=a3+a4;a3=a2;a2=a1;a1=a4;}
}
sum=a1+a2+a3+a4;
printf("%d",sum);
getch();
} 解释:1岁母牛数为a1,2岁母牛数为a2,3岁母牛数为a3,4岁和4岁以上母牛数为a4

我的答案:
main()
{ int i,a1,a2,a3,a4,n,t,sum;
scanf("%d",&n);
for(i=1;i<=n;i++)
{if(n==1)
{a1=1,a2=a3=a4=0;}
if(n==2)
{a1=a3=a4=0;a2=1;}
if(n==3)
{a1=a2=a4=0;a3=1;}
else
{a4=a3+a4;a3=a2;a2=a1;a1=a4;}
}
sum=a1+a2+a3+a4;
printf("%d",sum);
getch();
}
我错那里了??

自己细心比较下啊
你的if判断有问题哦
else
{a4=a3+a4;a3=a2;a2=a1;a1=a4;}
这一句每次都执行的(你的目的不是只有当n>3后执行吗)

大哥 发错地方了吧? 呵呵 这是硬件区 不是编程区哦 ..o(∩_∩)o...

你错在应该给小母牛找一头健壮的小公牛,才能有结果。