我正在制作一个单词搜索程序,并且正处于开始阶段。我试图让用户输入大小的网格' +'在用户输入进入单词搜索的单词之前。当我运行该程序时,它只打印出一个' +'。为什么它只打印一个值,如何调整我的代码,以便每个值都表示为' +'?我是一名编程初学者,所以任何建议都会有所帮助。谢谢。
#include<stdio.h>
void printmatrix(char matrix[][20],int);
int main(void)
{
char matrix[20][20]= {{'+'}};
int x=1;
printf("How large would you like the puzzle to be (between 10 and 20):\n");
scanf("%d",&x);
printmatrix(matrix,x);
return 0;
}
/********************************************
Function Name: Printmatrix...this function prints out an empty matrix of the grid size the user asked for
Inputs: Variables x and y...the row and column variables the user inputted
Outputs: Empty matrix filled with '+' thats the size the user asked for
********************************************/
void printmatrix(char matrix[][20],int x)
{
int i,j;
printf("Empty Puzzle:\n");
for (i=0;i<x;i++)
{
for (j=0;j<x;j++)
{
printf("%c", matrix[i][j]);
}
printf("\n");
}
}
答案 0 :(得分:1)
由于使用了char数组,因此可以使用memset将数组的值设置为相同的值。
memset( matrix , '+' , sizeof( matrix ) ) ;
你编码
char matrix[20][20]= {{'+'}};
只会做
matrix[0][0] = '+' ;
并且数组的其余部分将设置为0.
答案 1 :(得分:1)
您可能希望编写嵌套循环以将矩阵char
初始化为&#39; +&#39;:
char matrix[20][20];
int i;
int j;
/* Fill matrix with '+' */
for (i = 0; i < 20; i++) {
for (j = 0; j < 20; j++) {
matrix[i][j] = '+';
}
}