上述代码报错了 [Error] use of parameter 'cols' outside function body
时间: 2024-02-01 10:04:43 浏览: 15
非常抱歉,我在之前的代码中犯了一个错误,导致出现了上述问题。这个问题是因为在定义 `printTable` 函数的时候,我使用了参数 `cols` 来定义数组 `cols` 的大小。但是在函数内部,`cols` 已经被作为函数参数使用了,所以不能再用来定义数组大小。
为了解决这个问题,我们可以将 `cols` 的大小作为函数参数传递给 `printTable` 函数,而不是定义一个数组。下面是修改后的代码:
```c
#include <stdio.h>
void printTable(int rows, int cols, char data[rows][cols][50]) {
int i, j;
// 打印表格上边框
for (i = 0; i < cols; i++) {
printf("+");
for (j = 0; j < 50; j++) {
printf("-");
}
}
printf("+\n");
// 打印表格内容
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("|%-*s", 49, data[i][j]);
}
printf("|\n");
}
// 打印表格下边框
for (i = 0; i < cols; i++) {
printf("+");
for (j = 0; j < 50; j++) {
printf("-");
}
}
printf("+\n");
}
int main() {
char data[3][3][50] = {
{"Name", "Age", "Gender"},
{"Tom", "18", "Male"},
{"Lucy", "17", "Female"}
};
printTable(3, 3, data);
return 0;
}
```
在修改后的代码中,我们将 `cols` 的大小作为函数参数传递给了 `printTable` 函数,并在函数内部使用了这个参数来定义数组大小。这样就避免了之前的问题,代码应该可以正常编译和运行了。