【发布时间】:2016-04-10 16:56:55
【问题描述】:
该程序假设打印一个 16 x 16 的网格并在网格中随机水平插入多个元素,当我尝试在网格中插入单个元素时它工作正常,但当我尝试多个时,它会将符号插入网格中。我现在想知道为什么会发生这种情况。到目前为止,这是我的代码副本:
#include <stdio.h>
#include <stdlib.h>
char **create2DArray();
#define WIDTH 16
#define HEIGHT 16
char** myArray; //global array
void main()
{
myArray = create2DArray();
}
char **create2DArray(){
int i,j;
char **array = (char **) malloc(sizeof(char *) * WIDTH);
for(i=0; i<WIDTH; i++)
array[i] = (char *) malloc(sizeof(char) * HEIGHT);
void insertHorizontally(char* word, char** array);
srand(time(NULL));
int WIDTH_1 = (rand()%15)+ 1;
int HEIGHT_1 = (rand()%15) + 1;
int insert;
char* word[] = {"CAT","DOG",};
insert = strlen(word);
for(i=0; i<WIDTH; i++){
for(j=0; j<HEIGHT; j++){
array[i][j] = '.';
}
}
for (j = HEIGHT_1; j < HEIGHT_1 + insert; j ++) {
array[WIDTH_1][j] = word[j - HEIGHT_1];
}
void printArray(char** array);
for(i=0; i<WIDTH; i++){
for(j=0; j<HEIGHT; j++){
printf("%c ", array[i][j]);
}
printf("\n");
}
return array;
}
任何帮助、提示或建议将不胜感激:)
【问题讨论】:
-
提示:使用
int main而不是void main。此外,正确缩进您的代码会增加您和其他人理解您的代码的机会。最后,记得编译时启用警告。