不好意思
如何使用条件结果告诉程序在函数中引用哪个数组?
我想一次只取一个特定的数组,将它的值与主数组相匹配,到目前为止,我还不能想出一个关于如何做这些事情的想法。
例子:如果条件结果显示为"0",则引用第一个数组(playerA),如果显示为"1",则引用另一个数组(playerB),以此类推。程序将相应玩家的正确数组值与主数组"data"相匹配。
我本可以直接使用switch并让它自己运行,但我尽量避免使用它,因为在每种情况下我都有很多代码要复制,而且是很多情况,所以这很愚蠢。
对于所有重要的,"球员"数组都是2x2,并将匹配2x2的数据数组(它实际上有更多的行,但我选择特定的2x2在它匹配)。我需要2x2中的所有4个值与给定数据数组2x2
的4个对应值相匹配我怎么做这样的事情没有开关或临时数组内的函数?我的一个朋友告诉我我应该用一个指针,但不能给我一个例子,所以我在这里查了一下,我就是不明白。
你可能已经猜到了,我是这方面的初学者。请记住这一点。
和THNX提前
.
int data[2][2] = {{5,5},{5,5}} ;
int playerA[2][2] = {{5,6},{7,8}} ;
int playerB[2][2] = {{1,2},{3,4}} ;
main () {
function(player) ;
}
void function (int activePlayer) {
// this condition is just so you'd understand what i want
// because i dont know how to code this part
if (activePlayer == 0)
{ pickTheRightArray = playerA } ;
else if (activePlayer == 1)
{ pickTheRightArray = playerB } ;
bigger = 0;
for (x=0 ; x<number ; x++) {
if ( pickTheRightArray[x][0] > data [x][0] )
bigger++;
};
//etc..etc..etc... do some stuff with this info
有许多方法可以处理这种情况,其他人已经提到使用3d数组。这看起来也像是一种更模块化的编码风格:
int data[2][2] = {{5,5},{5,5}} ;
int playerA[2][2] = {{5,6},{7,8}} ;
int playerB[2][2] = {{1,2},{3,4}} ;
void function (int activePlayer);
main () {
int player = 0;
function(player) ;
}
void processPlayer(int player[2][2])
{
int number = 2;
int bigger = 0;
for (int x=0 ; x<number ; x++) {
if ( player[x][0] > data [x][0] )
bigger++;
}
}
void function (int activePlayer) {
// this condition is just so you'd understand what i want
// because i dont know how to code this part
if (activePlayer == 0)
{ processPlayer(playerA); }
else if (activePlayer == 1)
{ processPlayer(playerB); }
}
能够将指针赋值给静态多维数组将会让你心痛。我建议您避免使用全局变量