标签:循环 tps log 提交 黄金 学习 提示 网上 for循环
此次项目引用了网上的代码,代码地址:http://www.cnblogs.com/zw2013040101034/p/537030github
github地址:https://github.com/FZGgithub/cangku/blob/master/goldpoint.cpp
黄金点游戏是一个数字小游戏,其游戏规则是:
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循环之外重新创建了一个循环,在游戏结束后统计每轮游戏的分数并求和打印。
通过这次的项目,加深了我对循环的理解,同时也发现了自己以往的一些误区。相信在以后的学习中再遇到循环的问题可以更好的解决。
标签:循环 tps log 提交 黄金 学习 提示 网上 for循环
原文地址:http://www.cnblogs.com/483647379qq-com/p/7739878.html