2 qq 33555452 qq_33555452 于 2016.03.29 16:56 提问

我想问一下这个我要怎么才能在主函数中实现调用 谢谢
 #include <stdio.h>//循环赛问题 n=2^k 个运动员要进行循环赛 (1)每个选手必须与其他n-1名选手各比赛一次
//(2)每个选手一天只能赛一次 (3)循环赛一共进行n-1天
//利用分治法解决这个问题 用递归的方法用一分为二的策略对选手进行分割 知道剩下2个选手时 只需让这两个选手比赛就可以了
#include <stdlib.h>
#define N 8
int a[N][N];
void  Table(int k, int **a,int C)
{
    int n = 1;
    for (int i = 1; i <= k; i++)n *= 2;//记录人数 并且记录划分
    for (int i = 1; i <= n; i++)a[1][i] = i;//录入第一行 按人的编号录入的数据
    int m = 1;
    for (int s = 1; s <= k; s++)
    {
        n /= 2;
        for (int t = 1; t <= n; t++)//三重循环进行赋值 4,2,1
            for (int i = m + 1; i <= m + 1; i++)//2,3,5
                for (int j = m + 1; j <= m + 1; j++)//2,3,5
                {
                    a[i][j + (t - 1)*m*2] = a[i - m][j + (t - 1)*m * 2 - m];//按4格对角线赋值
                    a[i][j + (t - 1)*m * 2 - m] = a[i - m][(t - 1)*m * 2];
                }
        m *= 2;//m按2的倍数递增
    }
}
int main()
{
    int k = 3;
    Table(k, a);



}

2个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.29 17:17
已采纳

void Table(int k, int **a,int C)
我猜的话,应该是在main函数里要声明一个数组或者指针
然后对它取地址作为第二个参数进入Table函数参与运算
结果由这个二级指针带出来,所以没有设返回值

qq_33555452
qq_33555452 谢谢你的解答,每次你都是很快的帮我解答了,谢谢你
一年多之前 回复
qq_33555452
qq_33555452 不好意思 给你添乱了 可能是我的表达很有问题 下次我会注意的,谢谢你
一年多之前 回复
qq423399099
qq423399099 回复caozhy: 估计是只给了一个Table函数,全局的a什么的是楼主后来自己定义上去的。。。
一年多之前 回复
caozhy
caozhy 所以我认为这代码根本逻辑混乱。
一年多之前 回复
caozhy
caozhy 既然如此,定义一个全局的a的目的是什么呢
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.03.29 17:06

这个函数既没有返回值,也没有输出,本身就不对。看下题目,要求你输出什么

qq_33555452
qq_33555452 不好意思我强调的是函数调用问题,不是你说的,
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!