最后一行的n为什么显示它是未声明标识符,我是不是应该在printf前面加上int n啊,我加了,也显示不对
n是在子函数里定义的
main函数里没有定义
此外,不仅要定义,还要赋值,不要直接使用未初始化的变量
仔细看题目要求,n是不是应该从键盘输入,那么你的代码里就需要有scanf
你不给n赋值,它默认是个0或者其他随机数,执行完能对才怪
你的n是个形参,得在主函数定义一下
解决方案:
根据参考资料中的代码段,printqipan函数里已经声明了row和col两个变量,并且已经有了board数组作为参数,可以直接在printqipan函数中使用这些变量和数组。
如果在函数外使用变量n,需要先声明并且赋初值。例如int n = 0;,否则编译器在使用n的时候会提示未声明标识符的错误。
另外,要注意代码中的格式问题,如空格、括号、分号等。以下是修改后的代码:
#include <stdio.h>
#include <windows.h> // 需要的头文件
#define ROW 3
#define COL 3
void printqipan(char board[ROW][COL], int row, int col)
{
system("cls");
for (int a = 0; a < row; a++)
{
for (int b = 0; b < col; b++)
{
printf("%c ", board[a][b]); // 去掉多余的空格
if (b != col - 1)
{
printf("| ");
}
}
printf("\n");
if (a != row - 1)
{
for (int c = 0; c < col - 1; c++)
{
printf("---");
if (c == col - 2)
{
printf("--\n");
}
}
}
}
}
int main()
{
char board[ROW][COL] = {
{' ', ' ', ' '},
{' ', ' ', ' '},
{' ', ' ', ' '}
};
int n = 0; // 声明并赋初值
printqipan(board, ROW, COL);
printf("%d\n", n); // 输出n的值,验证是否正常使用
return 0;
}