Gold point

   此篇博客引用了网上的代码,代码地址:http://www.cnblogs.com/zw2013040101034/p/5370302.html.

 Github地址:https://github.com/Divel-Qin/C-Program/tree/master/Goldpoint/Goldpoint

   黄金点游戏是一个数字小游戏,其游戏规则是:

      N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。

  该程序用C++写,主要功能是算出G点,代码如下:

  ave = sum / num;
  G = ave*0.618;

  然后就是比较哪个数离G点最近:

for (j = 1; j <= M; j++)
{
S1[j] = abs(S[j] - G);
}
max = min = S1[1];
for (j = 1; j <= M; j++)
{
if (S1[j] >= max)
max = S1[j];
else if (S1[j] < min)
min = S1[j];
}
for (j = 1; j <= M; j++)
{
if (S1[j] == max)
S2[j] = -2;
else if (S1[j] == min)
S2[j] = M;
else S2[j] = 0;

}
for (j = 1; j <= M; j++)
{

  最后我们改进了该程序,其中理解不太清楚的是英文提示,我们改成了中文,便于玩家理解。

  感悟:我们理解了数组的概念,以及循环,这个游戏给我们的乐趣就是能让我们越玩越有兴趣。

原文地址:https://www.cnblogs.com/qiyi001/p/7675451.html