2010-04-30 68 views
0

下面的代码询问用户的用于2D阵列尺寸输入,并打印出这样的:(比方说一个18×6栅格)更换元件水平和垂直方向中的2D阵列

.................. 
.................. 
.................. 
.................. 
.................. 
.................. 

代码从这里开始:

#include <stdio.h> 

#define MAX 10 

int main() 
{ 
    char grid[MAX][MAX]; 
    int i,j,row,col; 

    printf("Please enter your grid size: "); 
    scanf("%d %d", &row, &col); 


    for (i = 0; i < row; i++) { 
     for (j = 0; j < col; j++) { 
      grid[i][j] = '.'; 
      printf("%c ", grid[i][j]); 
     } 
     printf("\n"); 
    } 

    return 0; 
} 

我现在要求用户输入一个字符串,然后要求他们把它放在哪里,例如:

Please enter grid size: 18 6 
Please enter word: Hello 
Please enter location: 0 0 
Output: 
Hello............. 
.................. 
.................. 
.................. 
.................. 
.................. 
Please enter location: 3 4 
Output: 
.................. 
.................. 
.................. 
..Hello........... 
.................. 
.................. 
program just keeps going. 

任意t不知道如何修改这个代码?

PS:垂直似乎很难,但我想先从水平开始有一些工作。

+0

你可能会更好地尝试为自己编写一些作业。要求你的任务中的每一小点都不会帮助你学到任何东西。 – NomeN 2010-04-30 12:04:16

回答

0
#include <stdio.h> 
#include <string.h> 

#define MAX 10 

int main() 
{ 
    char grid[MAX][MAX]; 
    int i,j,row, col; 
    char word[MAX]; 
    int row_w,col_w; 
    int word_len; 

    printf("Please enter your grid size: "); 
    scanf("%d %d", &row, &col); 

    printf("Please enter word: "); 
    scanf("%s", word); 
    word_len = strlen(word); 

    printf("Please enter location: "); 
    scanf("%d %d", &row_w, &col_w); 

    for (i = 0; i < row; i++) { 
     for (j = 0; j < col; j++) { 
      grid[i][j] = '.'; 
     } 
    } 

    for (j = col_w; j < col_w + word_len; j ++) { 
     grid[row_w][j] = word[j - col_w]; 
    } 

    for (i = 0; i < row; i++) { 
     for (j = 0; j < col; j++) { 
      printf("%c ", grid[i][j]); 
     } 
     printf("\n"); 
    } 

    return 0; 
} 
+0

请注意,您提供的示例中混合了“row”和“col”。 – Zhaojun 2010-04-30 06:07:05

+0

另外,为了简单起见,我没有对用户输入的“单词”进行任何边界检查。但它是不安全的,所以当你在现实中使用它时应该考虑到这一点。 – Zhaojun 2010-04-30 06:13:32