1. 怎样用C语言编程积木游戏
1)第一行include语句前没有加#。不知道是不是你粘贴程序的时候漏了。
include<stdio.h>
-->
#include
<stdio.h>
2)在分积木的for循环中,应该为for
(i=0;
i<n-1;
i++),而不是i<n-2。因为在这个循环中,a[i]是获得积木的小朋友;a[i+1]是给出积木的小朋友。按照你原来的循环(i<n-2),那么最后一个获得积木的是a[n-3],最后一个给出积木的是a[n-2],这样a[n-2]就得不到a[n-1]的积木了。
3)在分积木的for循环中,a[i+1]把一半的积木分给左边的小朋友a[i]之后,剩余的积木数量却没有减少。
4)循环外处理a[0]分给a[n-1]的特殊情况时,应该是按a[0]得到a[1]的积木前的数量来算。而你现在是a[0]拿到a[1]的一半积木后,再把当前的一半分给a[n-1]。
这样修改后的代码片段为:
int
a[100],i,n,b;
...
...
b
=
a[0];
for(i=0;
i<n
-
1;
i++)
{
a[i]
+=
a[i+1]
/
2;
/*把自己的积木分一半给左边的小朋友*/
a[i+1]
/=
2;
}
a[i]
+=
b
/
2;
a[0]
-=
b
/
2;
2. 怎样用C语言编程积木游戏
1)第一行include语句前没有加#。不知道是不是你粘贴程序的时候漏了。
include<stdio.h>
-->
#include <stdio.h>
2)在分积木的for循环中,应该为for (i=0; i<n-1; i++),而不是i<n-2。因为在这个循环中,a[i]是获得积木的小朋友;a[i+1]是给出积木的小朋友。按照你原来的循环(i<n-2),那么最后一个获得积木的是a[n-3],最后一个给出积木的是a[n-2],这样a[n-2]就得不到a[n-1]的积木了。
3)在分积木的for循环中,a[i+1]把一半的积木分给左边的小朋友a[i]之后,剩余的积木数量却没有减少。
4)循环外处理a[0]分给a[n-1]的特殊情况时,应该是按a[0]得到a[1]的积木前的数量来算。而你现在是a[0]拿到a[1]的一半积木后,再把当前的一半分给a[n-1]。
这样修改后的代码片段为:
int a[100],i,n,b;
...
...
b = a[0];
for(i=0; i<n - 1; i++)
{
a[i] += a[i+1] / 2; /*把自己的积木分一半给左边的小朋友*/
a[i+1] /= 2;
}
a[i] += b / 2;
a[0] -= b / 2;