我正在学习一段代码,不知道如何仅使用一个函数来实现此功能?如何将参数传递给函数?

#include <stdio.h>

struct colleagues {
    int female[10];
    int male[10];
} teams[20];

void func(int count[])
{
    for (int i = 0; i < 10; i++) {
        printf("%d\n", count[i]);
    }
}

//FIXME
void showCnt(void (*function)(int *), int XXX[])
{
    for (int n = 0; n < 20; n++) {
        func(teams[n].XXX);
    }
}

int main()
{
    //How can i just use only one function showCnt to do this work???, I'm so appreciated.
    //***FIXME, How can i pass parameters "teams.female" to showCnt???***
    showCnt(function, teams.female);
    showCnt(function, teams.male);
    return 0;
}


抱歉,我没说清楚。我不知道如何将参数“ teams.male”作为数组传递给showCnt(),我想知道如何分别两次调用showCnt()来打印信息。

例如,首先,它调用showCnt(teamXX.female),其次,它调用showCnt(teamXXX.male)。我不知道是否可以将参数传递给showCnt()以使“ func(team [n] .male)”和“ func(team [n] .female)”正常工作。

最佳答案

如果我对您的理解正确,则只想将showCnt称为

showCnt(function);


并且应该同时打印teams.femaleteams.male

然后从函数count中删除​​(错误的)showCnt参数。然后在showCnt循环内,用functionteams[n].female调用teams[n].male两次。

关于c - 我如何只使用一个函数showCnt()来显示结构数组的成员?如何传递参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56422548/

10-12 07:36