我如何使用条件结果来告诉程序要处理哪个二维数组?



不好意思

如何使用条件结果告诉程序在函数中引用哪个数组?

我想一次只取一个特定的数组,将它的值与主数组相匹配,到目前为止,我还不能想出一个关于如何做这些事情的想法。

例子:如果条件结果显示为"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); }
}

能够将指针赋值给静态多维数组将会让你心痛。我建议您避免使用全局变量

相关内容

  • 没有找到相关文章

最新更新