一个二维矩阵上有三种生命形式,别离为石头、铰剪、布,天天上下摆布相邻的分歧生命形式会发生战斗,石头必定打败铰剪,铰剪必定打败布,布必定打败石头,每一天竣事后,胜利者会占领掉败者的领地。
此刻要求输出day天后矩阵各元素的值,如何用C++实现这一运算呢?小编与大师分享编程经验。
输入数据时,第1行为三个正整数row、list、day,暗示矩阵的行数、列数,以及所用的天数,每个整数都不跨越100。接下来输入row行、list列的字符,字符只能是R、S、P,暗示石头、铰剪和布。
输出数据时,输出颠末day天后矩阵各元素的值,每个元素只能是R、S、P。
首先,界说一个常量,节制矩阵数组的长度。
界说6个整型变量,实现法式的运算。
接着,界说两个字符型数组,保留矩阵中的各元素值,以及计较时用到的姑且数组。
界说两个整型数组,保留相邻元素的相对位置。
输入三个整数,保留在变量row、list、day中。
读入矩阵中各元素的值,保留在数组world和temp中。
用while轮回节制矩阵天天的转变,前提为day。
用两重for轮回节制矩阵的转变,
先计较矩阵中的元素值为R的环境,用if语句判定。
当元素的值为R时,若是四周相邻元素有一个值为P,则该元素的值变为P。
若是元素的值为S,继续按照四周元素,计较元素的转变。
当元素为S时,若是四周有元素的值为R,则元素变为R。
若是元素的值为P,判定它四周有无元素S,若是有则元素值变为S。
将二维数组world中的值,替代为一天竣事后元素的转变值。
天数削减一天,保留在变量day中。
最后,输出day天竣事后,矩阵中所有元素的值。
运行法式,输入矩阵的行数、列数、天数,输入每个矩阵的值后,电脑就管帐算出矩阵元素转变后的值。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!