问题描述
- 我想问一下这个我要怎么才能在主函数中实现调用 谢谢
-
#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); }
解决方案
void Table(int k, int **a,int C)
我猜的话,应该是在main函数里要声明一个数组或者指针
然后对它取地址作为第二个参数进入Table函数参与运算
结果由这个二级指针带出来,所以没有设返回值
解决方案二:
这个函数既没有返回值,也没有输出,本身就不对。看下题目,要求你输出什么
时间: 2024-12-02 05:30:19